代码之家  ›  专栏  ›  技术社区  ›  agilob

docker compose中的Postgres无法找到/mount/etc/postgresql/Postgres。形态

  •  0
  • agilob  · 技术社区  · 7 年前

    我正在努力提高我的博士后水平。形态和pg_hba。conf使用docker compose,并且很难理解为什么它在使用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撰写。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
    
    0 回复  |  直到 7 年前
        1
  •  1
  •   agilob    7 年前

    以下方法很好:

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