例如,在 postgres 镜像的 Dockerfile 中(https://github.com/docker-library/postgres/blob/master/10/Dockerfile),在最后定义了容器的启动方式:
ENTRYPOINT ["docker-entrypoint.sh"]
EXPOSE 5432
CMD ["postgres"]
如果我理解正确,参数
postgres
被传递到docker-entrypoint.sh
中,因此脚本中的$1
将替换为postgres
并执行脚本。现在我的问题是,如果我可以基于postgres镜像(FROM postgres
)定义自己的Dockerfile,但覆盖基础Dockerfile的CMD
并实现在启动时首先执行一个命令,然后再使用postgres
参数执行docker-entrypoint.sh
吗?类似这样:FROM postgres
...
CMD <my-command> && [“postgres”]
USER
指令。您应该发布您的Dockerfile。 - user2915097