Jit*_*aul 3 yum docker centos7 dockerfile
我有以下 dockerfile,使用 Centos:latest 作为基本映像非常简单。docker 文件在 0 以外的任何命令上退出,因为错误代码/代码 yum check-update 返回状态代码 100 以表示操作成功
docker文件如下
FROM centos:latest
MAINTAINER xyz (xyz@gmail.com)
ENTRYPOINT ["/bin/sh", "-lc", "ocp-indent"]
RUN yum -y check-update
Run Code Online (Sandbox Code Playgroud)
当我尝试构建图像时,该过程按如下方式运行,但它在没有成功构建图像的情况下被杀死
Sending build context to Docker daemon 2.048kB
Step 1/4 : FROM centos:latest
latest: Pulling from library/centos
7dc0dca2b151: Pull complete
Digest:
sha256:b67d21dfe609ddacf404589e04631d90a342921e81c40aeaf3391f6717fa5322
Status: Downloaded newer image for centos:latest
---> 49f7960eb7e4
Step 2/4 : MAINTAINER xyz (xyz@gmail.com)
---> Running in c5284bbfb10e
---> b2334a38cc19
Removing intermediate container c5284bbfb10e
Step 3/4 : ENTRYPOINT /bin/sh -lc ocp-indent
---> Running in 55b9adafca35
---> 02df626e85d6
Removing intermediate container 55b9adafca35
Step 4/4 : RUN yum check-update
---> Running in 3f9d47e74522
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
* base: mirror.its.dal.ca
* extras: centos.les.net
* updates: centos.les.net
binutils.x86_64 2.27-28.base.el7_5.1
updates
gnupg2.x86_64 2.0.22-5.el7_5
updates
python.x86_64 2.7.5-69.el7_5
updates
python-libs.x86_64 2.7.5-69.el7_5
updates
**The command '/bin/sh -c yum check-update' returned a non-zero code: 100**
Run Code Online (Sandbox Code Playgroud)
yum check-update被预期与状态100退出,如果有可用的更新,因为它的文档中描述:
check-update实施后您就可以知道您的机器是否有任何需要应用的更新,而无需以交互方式运行它。如果有可用于更新的包,则返回退出值 100。还以列表格式返回要更新的包列表。如果没有可用于更新的包,则返回 0。如果发生错误,则返回 1。在详细模式下运行也会显示过时。
同样,RUN预期docker命令会在任何非零退出状态下终止。如果要强制命令忽略 100 的退出状态(但仍将其他失败视为错误),可以按如下方式操作:
RUN yum -y check-update || { rc=$?; [ "$rc" -eq 100 ] && exit 0; exit "$rc"; }
Run Code Online (Sandbox Code Playgroud)
DockerRUN命令将任何非零退出状态视为失败是标准的 UNIX 约定(唯一成功的退出状态为 0),并在以下代码中明确实现dockerfile/containerbackend.go:
if status := <-waitC; status.ExitCode() != 0 {
close(finished)
logCancellationError(cancelErrCh,
fmt.Sprintf("a non-zero code from ContainerWait: %d", status.ExitCode()))
return &statusCodeError{code: status.ExitCode(), err: status.Err()}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1765 次 |
| 最近记录: |