You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure PostgreSQL数据库无法在Azure文件共享中正确持久化数据

解决PostgreSQL数据无法持久化到Azure文件共享的问题

问题根源

你的Docker Compose配置中将Azure文件卷挂载到了/var/lib/postgresql,但PostgreSQL官方镜像的默认数据存储目录是/var/lib/postgresql/data。挂载上层目录会覆盖镜像原有的目录结构,导致PostgreSQL初始化时无法正确写入数据到预期的data文件夹。

修复步骤

1. 修正挂载路径

修改db服务的volumes配置,将卷挂载到PostgreSQL的实际数据目录:

db:
  image: postgres:latest # 补充完整镜像标签,比如postgres:15
  restart: always
  environment:
    POSTGRES_USER: your-user
    POSTGRES_PASSWORD: your-pass
    POSTGRES_DB: your-db
  ports:
    - 5332:5432
  volumes:
    - db-data:/var/lib/postgresql/data # 修正为data目录

volumes: 
   db-data:
      driver: azure_file
      driver_opts:
          share_name: ****
          storage_account_name: ****
          storageaccountkey: ****

2. 确保权限匹配

PostgreSQL容器内部以postgres用户(UID=999)运行,需要确保Azure文件共享目录对该用户有读写权限。可以在db服务中指定用户:

db:
  # 其他配置...
  user: "999:999" # 匹配容器内postgres用户的UID/GID

3. 清理旧卷并重启

如果之前已经创建过错误的卷,需要先清理残留数据再重新启动:

docker-compose down -v
docker-compose up -d

完成以上步骤后,重启容器即可看到数据正确写入Azure文件共享的data文件夹中。

内容的提问来源于stack exchange,提问作者Gae

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 02:13:15