Osk*_*kar 89 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
Run Code Online (Sandbox Code Playgroud)
实际上是无害的.该库构建正常,但Docker一旦收到此错误就停止构建.有什么方法可以指示Docker忽略它吗?
lar*_*sks 187
当然.Docker只是响应了RUNshell脚本返回的错误代码Dockerfile.如果你Dockerfile有类似的东西:
RUN make
Run Code Online (Sandbox Code Playgroud)
您可以将其替换为:
RUN make; exit 0
Run Code Online (Sandbox Code Playgroud)
这将始终返回0(成功)退出代码.这里的缺点是,你的形象将出现,成功地构筑即使是在构建过程中实际发生的错误.
小智 18
这可能是那些在图像中潜在错误不足以 被忽视/记录的人所感兴趣的.(另外,还没有足够的代表发表评论,所以这里作为答案.)
正如所指出的那样,缺点RUN make; exit 0是你不知道,如果你的构建失败了.因此,请使用以下内容:
make test 2>&1 > /where/ever/make.log || echo "There were failing tests!"
Run Code Online (Sandbox Code Playgroud)
像这样,您可以通过docker映像构建过程日志获得通知,并且您可以看到在make执行期间究竟出现了什么(或者执行其他任何操作,这不限于make).
您还可以使用标准的bash忽略错误|| true,如果您位于链的中间,则很好:
RUN <first stage> && <job that might fail> || true && <next stage>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45917 次 |
| 最近记录: |