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

使用docker-compose部署arm64v8/postgres时替换pg_hba.conf的方案咨询

实现方案

你可以直接通过docker-compose的绑定挂载功能映射本地pg_hba.conf到容器内目标路径,无需构建自定义镜像,容器重启后配置会永久生效,具体操作步骤如下:

步骤1:修改docker-compose.yml配置

在postgres服务的volumes配置段新增本地文件到容器的映射规则,修改后的完整配置如下:

version: '2'
services:
    postgres:
      image: arm64v8/postgres:14.0-alpine
      volumes:
        - database:/var/lib/postgresql/data
        # 新增本行配置,末尾的ro表示只读挂载,避免容器内修改本地配置文件
        - ./pg_hba.conf:/var/lib/postgresql/data/pg_hba.conf:ro
      ports:
        - 5432:5432
      restart: unless-stopped
      environment: 
        - POSTGRES_PASSWORD=xxx
        - POSTGRES_DB=xxx
        - POSTGRES_USER=xxx
      networks:
      - manager

volumes:
  database:

networks:
  manager:
    driver: bridge

步骤2:调整本地配置文件权限

PostgreSQL要求pg_hba.conf的所属用户ID为70(镜像内postgres用户的UID)、文件权限为600,否则会启动失败,在docker-compose.yml所在目录执行以下命令调整权限:

# 调整文件所属用户组
sudo chown 70:70 pg_hba.conf
# 调整文件权限
sudo chmod 600 pg_hba.conf

步骤3:生效配置

在docker-compose.yml所在目录执行以下命令重启服务即可:

docker-compose up -d

如果你不想重启服务,也可以在修改本地pg_hba.conf后执行以下命令重载配置:

docker-compose exec postgres psql -U 你的POSTGRES_USER值 -c "SELECT pg_reload_conf();"

验证方法

执行以下命令查看容器内的配置文件,确认和本地文件内容一致即可:

docker-compose exec postgres cat /var/lib/postgresql/data/pg_hba.conf

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:06:05