我有一个Dockerfile。构建映像时,构建会因此错误而失败:
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
实际上是无害的。该库构建正常,但Docker一旦收到此错误就停止构建。有什么方法可以指示Docker忽略它吗?
答案 0 :(得分:164)
不确定。 Docker只是响应RUN
中Dockerfile
shell脚本返回的错误代码。如果您的Dockerfile
有类似的内容:
RUN make
您可以将其替换为:
RUN make; exit 0
这将始终返回0
(成功)退出代码。这里的缺点是,即使构建过程中 实际错误,您的图像也会成功构建。
答案 1 :(得分:16)
这些人可能会感兴趣,他们的图片中的潜在错误不够无害 被忽视/记录。 (另外,没有足够的代表评论,所以在这里作为答案。)
正如所指出的,package.ClassName
的缺点是,如果您的构建失败,您就不会知道。因此,请使用类似的东西:
RUN make; exit 0
像这样,您可以通过docker image构建过程日志获得通知,并且您可以看到make test 2>&1 > /where/ever/make.log || echo "There were failing tests!"
期间究竟发生了什么变质(或者执行其他任何操作,这不仅限于制作)。
答案 2 :(得分:4)
您还可以使用标准的bash忽略错误|| true
,如果您位于链的中间,那就很好了。
RUN <first stage> && <job that should not fail> || true && <next stage>