在Docker中安装pgsql卷

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

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

这可能看起来像:

  1. 在版本控制中保留自己的postgresql.conf文件,其中data_directory = '/var/www/data/pgsql'
  2. 在你的Dockerfile中,安装postgresql
  3. 在你的Dockerfile中, COPY postgresql.conf /etc/postgresql/9.5/main/postgresql.conf ,它会把你修改过的postgresql.conf移动到容器中,并replace默认的postgresql.conf。 这是假设在容器中的PG 9.5默认安装位置。

现在当你运行postgres时,它应该使用你的conf文件和/var/www/data/pgsql数据目录。

编辑: 关于移动data_directory