在 docker 容器内运行后台脚本

cle*_*toy 13 process docker

在我的 Dockerfile 中,我运行了一个脚本:

RUN /bin/sh -c scripts/init.sh
Run Code Online (Sandbox Code Playgroud)

在内部init.sh,所有以 结尾的命令&都不会执行:我无法运行后台进程。知道为什么吗?

小智 -1

我的第一个想法是在容器内创建服务,而不是使用nohup&运行它们,将它们作为系统服务运行,并且不需要在 init.sh 中处理它们。

但这不是“真正的”docker 方法。如果您需要运行 1 个以上的服务,请将它们分离到不同的容器中(1 个容器 - 1 个服务),然后使用 docker-compose 解决方案将所有这些服务放在一起。