Docker 容器以非零退出状态退出
Docker container exits on non-zero exit status
我有一个 Docker 图像,其 CMD
是 /bin/bash
以允许用户与其中包含的工具进行交互。我遇到一个问题,如果 bash 提示符下的命令 运行 以非零退出状态退出——例如$ badcmd
-- 容器退出。我希望能够在容器中执行多个命令,即使特定命令失败也能保持打开状态。
我的run
命令是:
docker run --rm -it <image>
我尝试添加 --sig-proxy=false
,但正如帮助消息中所述,它仅适用于非 TTY 模式。
此外,我试过:
docker run --rm -i --sig-proxy=false <image>
这让我更接近一些,但不是以一种真正可用的方式,因为它允许 shell 交互,但省略了 bash 提示——虽然功能正常,但它确实可行。
Docker 版本信息:
Client version: 1.5.0
Client API version: 1.17
Go version (client): go1.4.1
Git commit (client): a8a31ef
OS/Arch (client): linux/amd64
Server version: 1.5.0
Server API version: 1.17
Go version (server): go1.4.1
Git commit (server): a8a31ef
感谢您的帮助!
干杯,
J
问题原来是因为 .bashrc
中的脚本中的 set -e
。谢谢@jwodder!
我有一个 Docker 图像,其 CMD
是 /bin/bash
以允许用户与其中包含的工具进行交互。我遇到一个问题,如果 bash 提示符下的命令 运行 以非零退出状态退出——例如$ badcmd
-- 容器退出。我希望能够在容器中执行多个命令,即使特定命令失败也能保持打开状态。
我的run
命令是:
docker run --rm -it <image>
我尝试添加 --sig-proxy=false
,但正如帮助消息中所述,它仅适用于非 TTY 模式。
此外,我试过:
docker run --rm -i --sig-proxy=false <image>
这让我更接近一些,但不是以一种真正可用的方式,因为它允许 shell 交互,但省略了 bash 提示——虽然功能正常,但它确实可行。
Docker 版本信息:
Client version: 1.5.0
Client API version: 1.17
Go version (client): go1.4.1
Git commit (client): a8a31ef
OS/Arch (client): linux/amd64
Server version: 1.5.0
Server API version: 1.17
Go version (server): go1.4.1
Git commit (server): a8a31ef
感谢您的帮助!
干杯, J
问题原来是因为 .bashrc
中的脚本中的 set -e
。谢谢@jwodder!