我在postgres图像(https://github.com/docker-library/postgres/blob/master/10/Dockerfile)的Dockerfile中看到,最后容器的启动定义如下:
ENTRYPOINT ["docker-entrypoint.sh"]
EXPOSE 5432
CMD ["postgres"]
如果我理解这一点,则论证postgres
会转移到docker-entrypoint.sh
中,因此脚本中的$1
将替换为postgres
,脚本将被执行。< / p>
现在我的问题是我是否可以基于postgres图像(FROM postgres
)定义我自己的Dockerfile,但是覆盖基础Dockerfile的CMD
并完成首先在启动时执行命令然后执行带有docker-entrypoint.sh
参数的postgres
?
这样的事情:
FROM postgres
...
CMD <my-command> && [“postgres”]
答案 0 :(得分:1)
您可以创建自己的index.php
headers
您的泊坞窗文件如下所示
my-entrypoint.sh
答案 1 :(得分:0)
是的,你可以做这样的事情
对于Dockerfile中的CMD命令,您有3种可能的语法
摘自
https://docs.docker.com/engine/reference/builder/#cmd
CMD ["executable","param1","param2"] (exec form, this is the preferred form)
CMD ["param1","param2"] (as default parameters to ENTRYPOINT)
CMD command param1 param2 (shell form)
所以你可以使用任何,为了做你想要的,shell形式(最后一个)似乎很适合
您还可以启动一个可以完成所有工作的shell脚本