Dockerfile构建 - 可以忽略错误吗?

时间:2015-06-08 18:55:24

标签: docker dockerfile

我有一个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忽略它吗?

3 个答案:

答案 0 :(得分:164)

不确定。 Docker只是响应RUNDockerfile 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>