在Docker中挂载pgsql卷

时间:2017-10-05 23:29:36

标签: postgresql docker

我有一个基于centos:latest的自定义Dockerfile,它安装了运行我使用的Web框架所需的软件。我想扩展这个Dockerfile以便我可以添加PostgreSQL,因为我想将pgsql的默认数据位置从/var/lib/pgsql更改为/var/www/data/pgsql,这是一个安装了文件系统的卷。我不确定是否可以在Dockerfile中执行此操作,或者我是否需要在容器内运行某些脚本。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

最终你需要在postgresql.conf中更改data_directory。 postgresql 9.5中的默认位置是/etc/postgresql/9.5/main/postgresql.conf

这可能如下所示:

  1. 使用data_directory = '/var/www/data/pgsql'
  2. 在版本控制中保留您自己的postgresql.conf文件
  3. 在Dockerfile中,安装postgresql
  4. 在Dockerfile中COPY postgresql.conf /etc/postgresql/9.5/main/postgresql.conf,它将修改后的postgresql.conf移动到容器中,并替换默认的postgresql.conf。这是假设PG 9.5默认安装位置在容器中。
  5. 现在当你运行postgres时,它应该使用带有/var/www/data/pgsql数据目录的conf文件。

    编辑:about moving data_directory