Skip to content

fix: 修正 PostgreSQL 18 数据卷挂载路径#31

Open
F1sh2712 wants to merge 1 commit intoInvolutionHell:mainfrom
F1sh2712:fix/postgres-18-volume-mount-path
Open

fix: 修正 PostgreSQL 18 数据卷挂载路径#31
F1sh2712 wants to merge 1 commit intoInvolutionHell:mainfrom
F1sh2712:fix/postgres-18-volume-mount-path

Conversation

@F1sh2712
Copy link
Copy Markdown

@F1sh2712 F1sh2712 commented May 8, 2026

What

修正 docker-compose.yml 中 postgres 服务的数据卷挂载路径,从 /var/lib/postgresql/data 改为 /var/lib/postgresql,以兼容 PostgreSQL 18 的官方镜像规范。

Why

PostgreSQL 18 官方 Docker 镜像修改了数据存储路径规范,从 /var/lib/postgresql/data 改为 /var/lib/postgresql/<major>/docker(由镜像内部自动创建版本子目录)。当前 docker-compose.yml 仍按旧规范挂载到 /var/lib/postgresql/data,导致容器启动时检测到挂载点配置不匹配,直接拒绝启动以防数据损坏

容器进入无限重启循环,新贡献者按 README 走会被卡死。

参考:PostgreSQL Docker 官方说明

Closes #25

How

修改 docker-compose.yml 中 postgres 服务的 volumes 配置:

volumes:
  - ./docker/init-db:/docker-entrypoint-initdb.d
- - involution-postgres-data:/var/lib/postgresql/data
+ - involution-postgres-data:/var/lib/postgresql

⚠️ 升级注意事项

已经在用旧版 docker-compose.yml 跑过 postgres 的开发者,本地的 involution-postgres-data 数据卷是按旧路径生成的,合并本 PR 后必须重建数据卷才能正常启动:

docker compose down -v
docker compose up -d postgres

docker compose down -v 会删除 involution-postgres-data 卷里的所有本地数据。本地开发数据通常无关紧要(种子数据会由 init.sql 重建),但若本地有重要测试数据,请先备份。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

新贡献者本地启动后端时遇到的多个问题汇总

1 participant