容器内 Caddy 以非 root 用户运行,而宿主机上挂载的 /data 目录(或其子目录)权限不对

0 阅读1分钟

image.png

docker inspect 1Panel-openc law-X6Mw | grep -A 30 Mounts

image.png

image.png

sudo mkdir -p /opt/1panel/apps/openclaw/data sudo chown -R 1000:1000 /opt/1panel/apps/openclaw/data sudo chmod -R 755 /opt/1panel/apps/openclaw/data sudo rm -rf /opt/1panel/apps/openclaw/data/caddy 2>/dev/null || true sudo docker restart "1Panel-openclaw-X6Mw"

image.png

sudo docker inspect "1Panel-openclaw-X6Mw" | grep -A 30 Mounts

ubuntu@VM-0-4-ubuntu:~$ sudo docker inspect "1Panel-openclaw-X6Mw" | grep -A 30 Mounts "Mounts": [ { "Type": "bind", "Source": "/opt/1panel/apps/openclaw/openclaw/data/caddy/data", "Destination": "/data", "Mode": "rw", "RW": true, "Propagation": "rprivate" }, { "Type": "bind", "Source": "/opt/1panel/apps/openclaw/openclaw/data/conf", "Destination": "/home/node/.openclaw", "Mode": "rw", "RW": true, "Propagation": "rprivate" }, { "Type": "bind", "Source": "/opt/1panel/apps/openclaw/openclaw/data/workspace", "Destination": "/home/node/.openclaw/workspace", "Mode": "rw", "RW": true, "Propagation": "rprivate" }, { "Type": "bind", "Source": "/opt/1panel/apps/openclaw/openclaw/data/caddy/Caddyfile", "Destination": "/etc/caddy/Caddyfile", "Mode": "ro", "RW": false,

刚才 docker inspect 输出了真实挂载路径: /data(容器内) → 宿主机 /opt/1panel/apps/openclaw/openclaw/data/caddy/data

之前我们 chown 的路径是错的(少了 /openclaw 那层),所以一直失败。 Caddy 以 uid 1000(node 用户)运行,必须让这个目录归属 1000:1000。

1. 创建目录(如果不存在)

sudo mkdir -p /opt/1panel/apps/openclaw/openclaw/data/caddy/data

2. 给整个数据目录改权限(关键!)

sudo chown -R 1000:1000 /opt/1panel/apps/openclaw/openclaw/data sudo chmod -R 755 /opt/1panel/apps/openclaw/openclaw/data

3. 删除可能残留的 caddy 目录,让它重新创建

sudo rm -rf /opt/1panel/apps/openclaw/openclaw/data/caddy/data/caddy 2>/dev/null || true

4. 重启容器

sudo docker restart "1Panel-openclaw-X6Mw"

image.png