将数据和配置挂载到Postgres Docker映像

时间:2020-02-03 16:18:57

标签: postgresql docker docker-compose

我尝试使用docker-compose将特定的数据文件夹和postgresql.conf挂载到postgres映像。

这是我的docker-compose.yml示例:

postgres:
  image: postgres:11
  volumes:
    - ./data/pg:/var/lib/postgresql/data #here is my specific data folder
    - ./postgresql.conf:/var/lib/postgresql/data/postgresql.conf #here my custom pg conf

但是我在启动时遇到错误:

postgres_1  | initdb: directory "/var/lib/postgresql/data" exists but is not empty
postgres_1  | If you want to create a new database system, either remove or empty
postgres_1  | the directory "/var/lib/postgresql/data" or run initdb
postgres_1  | with an argument other than "/var/lib/postgresql/data".

我猜我的第二卷(/var/lib/postgresql/data/postgresql.conf)与第一卷(/var/lib/postgresql/data)冲突-因为如果我评论第二卷-可以正常工作。但是我不知道如何正确处理内容,我希望能够同时装入(数据和conf)

1 个答案:

答案 0 :(得分:1)

为此,您需要将postgresql.conf复制到其他位置,然后指示postgres从新位置使用conf文件。

类似这样的东西:

version: "3.2"

services:
  postgres:
    image: postgres
    volumes:
    - ./data/pg:/var/lib/postgresql/data
    - ./postgresql.conf:/etc/postgres/my.conf
    command: "-c 'config_file=/etc/postgres/my.conf'"