1️⃣ 描述一下问题
部署环境:MacOS x86_64
部署阶段:首次部署
前置操作:获取代码,初始化./scripts/init.sh脚本完成
错误发生:docker compose up --build -d
错误原因:
- postgres容器启动时未自动创建数据库
Yuxi产生连锁反应
- macOS Docker Desktop 的 bind mount 权限映射问题。
macOS 上通过 bind mount 把宿主机目录挂到容器的 /var/lib/postgresql/data,但 Docker Desktop会把宿主目录的所有者映射成 root 或当前 macOS 用户的 UID,而 postgres 容器内要求数据目录归 postgres 用户(UID 70)所有。
2️⃣ 报错日志
错误日志
[+] up 15/15
✔ Image pat-api:0.7.2 Built 5.9s
✔ Image pat-web:0.7.2 Built 6.0s
✔ Image pat-sandbox-provisioner:0.7.2 Built 6.0s
✔ Network pat_app-network Created 0.2s
✔ Container pat-redis-1 Started 4.8s
✔ Container pat-minio-1 Started 5.5s
✔ Container pat-etcd-1 Started 5.8s
✘ Container pat-postgres-1 Error dependency postgres failed to start 59.3s
✔ Container pat-graph-1 Started 4.6s
✔ Container pat-storage-migrator-1 Created 1.0s
✔ Container pat-milvus-1 Started 7.3s
✔ Container pat-sandbox-provisioner-1 Created 0.3s
✔ Container pat-worker-1 Created 1.0s
✔ Container pat-api-1 Created 0.4s
✔ Container pat-web-1 Created 0.3s
dependency failed to start: container pat-postgres-1 is unhealthy
What's next:
Debug this Compose error with Gordon → docker ai "help me fix this compose error"
3️⃣ 相关截图
#️⃣ 其他相关信息
解决方案:
把 bind mount 挂到上一级目录,让 postgres 镜像自己在容器内创建 data 子目录。
target: /var/lib/postgresql
1️⃣ 描述一下问题
部署环境:MacOS x86_64
部署阶段:首次部署
前置操作:获取代码,初始化
./scripts/init.sh脚本完成错误发生:
docker compose up --build -d错误原因:
Yuxi产生连锁反应macOS 上通过 bind mount 把宿主机目录挂到容器的 /var/lib/postgresql/data,但 Docker Desktop会把宿主目录的所有者映射成 root 或当前 macOS 用户的 UID,而 postgres 容器内要求数据目录归 postgres 用户(UID 70)所有。
2️⃣ 报错日志
错误日志
3️⃣ 相关截图
#️⃣ 其他相关信息
解决方案:
把 bind mount 挂到上一级目录,让 postgres 镜像自己在容器内创建 data 子目录。
target: /var/lib/postgresql