Docker – 在Container中运行Postgres脚本

我已经创build了一个docker容器postgres使用以下链接。有几个预先存在的postgres脚本,我需要在容器中运行它。

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

尝试下面的命令仍然没有运气

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

看到我以前的答案是最好的方法来做到这一点。

在Docker中pipe理数据库模式的“正确”方法

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

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

 WORKDIR /workspace CMD ["postgres", "/root/runsqlscripts.sh" ] docker run -v /root:/workspace IMAGE_ID 

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