docker-compose中的Postgres无法找到/挂载/etc/postgresql/postgres.conf

时间:2019-08-11 10:01:06

标签: postgresql docker docker-compose

我正在尝试使用docker-compose挂载我的postgres.conf和pg_hba.conf,并且难以理解为什么在使用docker-cli而不是docker-compose时为什么能工作

以下docker-compose导致映像崩溃并显示错误:

/usr/local/bin/docker-entrypoint.sh: line 176: /config_file=/etc/postgresql/postgres.conf: No such file or directory

docker-compose.yml


services:
  postgres-master:
    image: postgres:11.4
    container_name: postgres-master
    volumes:
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro
      - /home/agilob/dockers/pg/data:/var/lib/postgresql/data:rw
      - $PWD/pg:/etc/postgresql:rw
      - /etc/localtime:/etc/localtime:ro
    hostname: 'primary'
    environment:
      - PGHOST=/tmp
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=postgres
      - MAX_CONNECTIONS=10
      - MAX_WAL_SENDERS=5
      - PG_MODE=primary
      - PUID=1000
      - PGID=1000
    ports:
      - "5432:5432"
    command: 'config_file=/etc/postgresql/postgres.conf hba_file=/etc/postgresql/pg_hba.conf'

此命令正常工作:

docker run -d --name some-postgres -v "$PWD/postgres.conf":/etc/postgresql/postgresql.conf postgres -c 'config_file=/etc/postgresql/postgresql.conf'

当我删除command:部分并运行相同的docker-compose时:

$ docker-compose -f postgres-compose.yml up -d 
Recreating postgres-master ... done
$ docker exec -it postgres-master bash
root@primary:/# cd /etc/postgresql
root@primary:/etc/postgresql# ls
pg_hba.conf  postgres.conf

文件位于/ etc / postgres中。

存在$PWD/pg中的文件:

$ ls pg
pg_hba.conf  postgres.conf

1 个答案:

答案 0 :(得分:0)

以下工作正常:

    command: postgres -c config_file='/etc/postgresql/postgres.conf' -c 'hba_file=/etc/postgresql/pg_hba.conf'