services: wb2api: build: context: . args: # 可选:Go 模块代理。官方 proxy.golang.org 在中国大陆不可达 —— 构建第一步 # 就是 `go mod download`,会长时间卡在这一层(看着像构建挂了),有时直接失败。 # 国内构建填 https://goproxy.cn,direct(或 https://mirrors.aliyun.com/goproxy/)。 # 留空 = 官方默认,行为与上游原版一致。 GOPROXY: "" container_name: workbuddy2api restart: unless-stopped environment: - TZ=Asia/Shanghai ports: - "7863:7863" volumes: # auths 凭证卷:login.sh 在宿主机落盘 workbuddy-.json(0600),容器网关以 # app(uid 10001) 读 + 回写(refresh / realm backfill 走 tmp+rename,需目录写权限)。 # 跨 uid 部署(非 root 宿主落盘 / rootful 下宿主 uid≠10001)读不到 → 账号数为 0 # (issue #108)。登录后把目录属主交给 10001(与 ./data 卷同口径): # chown -R 10001:10001 ./auths # 之后新增账号建议进容器登录(app 自身落盘,属主即 10001,免反复 chown;容器内无 # docker CLI,完成后回宿主机重启): # docker compose exec -it wb2api bash -c './login.sh' && docker compose restart wb2api - ./auths:/app/auths # data 保持 bind mount(本地映射,与旧版本一致)。 # 若容器内 app(uid 10001) 写 state.json 报 permission denied,宿主机执行: # chown -R 10001:10001 ./data - ./data:/app/data - ./config.json:/app/config.json:ro