如何在Docker容器启动后自动运行脚本,而不改变容器的主进程

如何在Docker容器启动后自动运行脚本,而不改变容器的主进程,docker,docker-compose,docker-entrypoint,Docker,Docker Compose,Docker Entrypoint,我有一个运行web服务的Docker容器。容器进程启动后,我需要运行一个命令。如何使用Docker Compose或Docker自动完成此操作 我正在寻找一种解决方案,它不需要我用运行sleep infinity等的Bash脚本替换原始容器进程。这可能吗?您是否尝试过在docker compose.yml中使用命令指令?除非在入口点以这种方式设计,否则是不可能的。您知道吗希望您的Web服务具有进程id 1?如果没有,您可以创建一个脚本,首先运行单个命令,然后启动您的web服务器。@Maaike,

我有一个运行web服务的Docker容器。容器进程启动后,我需要运行一个命令。如何使用Docker Compose或Docker自动完成此操作


我正在寻找一种解决方案,它不需要我用运行
sleep infinity
等的Bash脚本替换原始容器进程。这可能吗?

您是否尝试过在
docker compose.yml
中使用
命令
指令?除非在入口点以这种方式设计,否则是不可能的。您知道吗希望您的Web服务具有进程id 1?如果没有,您可以创建一个脚本,首先运行单个命令,然后启动您的web服务器。@Maaike,我希望这是一个选项,但如问题中所述,该命令必须在web服务启动后运行。@Magnus那么您仍然可以使用脚本启动web服务器,然后运行您的命令,但是,只有在Web服务器不需要进程id为1的情况下,这才是可能的。您可以只启动一个脚本而不是Web服务器。脚本启动Web服务器,等待Web服务器启动并准备就绪,然后运行该命令。但是您的脚本将具有进程id 1,这并不总是一个问题,但需要注意。