有条件地防止容器退出

Ale*_*lls 2 docker dockerfile docker-run

我在 Dockerfile 中有这个入口点:

ENTRYPOINT ["r2g", "run"]
Run Code Online (Sandbox Code Playgroud)

我用以下命令运行生成的图像:

docker run --name "$container" "$tag"
Run Code Online (Sandbox Code Playgroud)

大多数时候,我希望容器在完成后退出 - r2g 进程不是服务器,而是测试命令行工具。所以我的问题是- 如果我想有条件地阻止容器退出,是否可以传递一个标志来docker run保持容器处于活动状态?我可以向 ENTRYPOINT 添加一些东西来保持容器处于活动状态吗?

whi*_*s11 5

保持 docker 容器运行的唯一方法是使其运行不退出的命令。

在您的情况下,当您不希望容器退出时,您可以运行如下命令:

docker run --name "$container" "$tag" sh -c "r2g run && sleep infinity"
Run Code Online (Sandbox Code Playgroud)

这样,一旦r2g命令完成,您的容器将无限期等待并继续运行。