我使用以下链接为postgres创建了一个docker容器。我需要在容器内部运行它,这里有一些预先存在的postgres脚本。
Docker Image链接 - https://registry.hub.docker.com/_/postgres/
尝试以下命令仍然没有运气
ADD runsqlscripts.sh /root/runsqlscripts.sh
CMD ["postgres" "/root/runsqlscripts.sh" ]
答案 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
等随机路径。