Docker - 在Container内运行Postgres脚本

时间:2015-03-09 04:22:45

标签: docker

我使用以下链接为postgres创建了一个docker容器。我需要在容器内部运行它,这里有一些预先存在的postgres脚本。

Docker Image链接 -       https://registry.hub.docker.com/_/postgres/

尝试以下命令仍然没有运气

  ADD runsqlscripts.sh /root/runsqlscripts.sh
  CMD ["postgres" "/root/runsqlscripts.sh" ]

2 个答案:

答案 0 :(得分:1)

请参阅我之前的答案,了解最佳方法。

"correct" way to manage database schemas in docker

问题是你不能立即使用Dockerfile运行脚本,因为Postgres在发出命令时不会运行。

他们建议你从docker-entrypoint.sh脚本运行脚本,该脚本将查看 Postgres启动后应该运行的脚本的./docker-entrypoint-initdb.d目录。

答案 1 :(得分:0)

WORKDIR /workspace
CMD ["postgres", "/root/runsqlscripts.sh" ]

docker run -v /root:/workspace IMAGE_ID

如果要将主机目录映射到给定路径中的容器,则需要在容器创建中调用-v /host:/container。 Dockerfile可以映射目录,但可以映射到/dev/disk/by-uuid/af414ad8-9936-46cd-b074-528854656fcd等随机路径。