Dockerfile的构build – 可以忽略错误?
我有一个Dockerfile。 构build映像时,构build失败,出现此错误:
automake: error: no 'Makefile.am' found for any configure output Error build: The command [/bin/sh -c aclocal && autoconf && automake -a] returned a non-zero code: 1
这实际上是无害的。 库构build得很好,但是Docker收到这个错误后会停止构build。 有什么方法可以指导Docker忽略这个吗?
当然。 Docker只是响应Dockerfile
RUN
shell脚本返回的错误代码。 如果你的Dockerfile
有这样的东西:
RUN make
你可以用下面的代替:
RUN make; exit 0
这将始终返回一个0
(成功)退出代码。 这里的缺点是,即使在构build过程中有实际的错误,您的图像也会成功构build。
这可能会对那些在图像上的潜在错误不会 被忽视/logging的人感兴趣。 (也没有足够的代表评论,所以这里作为答案。)
正如所指出的那样, RUN make; exit 0
的缺点在于RUN make; exit 0
RUN make; exit 0
是你不知道,如果你的构build失败。 因此,而是使用像这样的东西:
make test 2>&1 > /where/ever/make.log || echo "There were failing tests!"
就像这样,你会通过docker的图像构build过程日志得到通知,并且你可以看到在make
过程中究竟发生了什么坏事(或者其他的执行,这并不限于make)。