如何在dockerfile映像生成遇到第一个错误时取消它?

如何在dockerfile映像生成遇到第一个错误时取消它?,docker,dockerfile,Docker,Dockerfile,如果我的dockerfile中的RUN命令出错,它将继续执行下一个命令。你确定该命令真的返回了错误吗?以下Dockerfile无法访问echo foo: FROM alpine RUN false RUN echo foo 它只是得到: # docker build . Sending build context to Docker daemon 3.072 kB Step 0 : FROM alpine ---> 0a3b5ba3277d Step 1 : RUN false --

如果我的dockerfile中的RUN命令出错,它将继续执行下一个命令。

你确定该命令真的返回了错误吗?以下Dockerfile无法访问
echo foo

FROM alpine
RUN false
RUN echo foo
它只是得到:

# docker build .
Sending build context to Docker daemon 3.072 kB
Step 0 : FROM alpine
 ---> 0a3b5ba3277d
Step 1 : RUN false
 ---> Running in 22485c5e763c
The command '/bin/sh -c false' returned a non-zero code: 1
要检查您的命令是否真的失败,您可以尝试以下操作:

FROM alpine
RUN false || echo failed
RUN echo foo
这让我明白:

# docker build .
Sending build context to Docker daemon 3.072 kB
Step 0 : FROM alpine
 ---> 0a3b5ba3277d
Step 1 : RUN false || echo failed
 ---> Running in 674f09ae7530
failed
 ---> 232fd66c5729
Removing intermediate container 674f09ae7530
Step 2 : RUN echo foo
 ---> Running in c7b541fdb15c
foo
 ---> dd1bece67e71
Removing intermediate container c7b541fdb15c
Successfully built dd1bece67e71

我想这不是一个真正的“错误”。这是在docker中运行的安装程序的红色文本。我必须用谷歌搜索什么是Unix错误,并为其编写自己的测试。您可以在CLI上进行检查: