使用 Dockerfile 运行 做一些事情但忽略错误
Do something using Dockerfile RUN but ignore errors
我想我想要 Docker 运行 一些我知道会失败的东西,然后使用修复来修复它,即
RUN dpkg -i wkhtmltox_0.12.6-1.focal_arm64.deb
RUN apt-get update
RUN apt fix-broken install
似乎 apt
认识到 wkhtmltox
由于缺少软件包而未能安装,然后能够安装所有这些软件包。 ...我觉得。
无论如何,即使尝试这样做也意味着允许 Docker 构建在错误的退出代码后继续。
我可以这样做吗?
解决方法如下:
RUN dpkg -i wkhtmltox_0.12.6-1.focal_arm64.deb || true
RUN apt-get update || true
RUN apt fix-broken install || true
除了让它正常工作之外,您可能真的想要一些改进!
- 验证
dpkg
成功引入包
- 使用
apt-get
代替apt
以避免稳定界面警告
- 运行 您所有的
apt
命令都在同一个块中,末尾带有 clean
以减小容器大小
# NOTE dpkg -i exits nonzero due to missing dependencies
RUN dpkg -i wkhtmltox_0.12.6-1.focal_arm64.deb ; \
dpkg -l | grep wkhtmltox
RUN apt-get update && \
apt-get -f install && \
apt-get clean
我想我想要 Docker 运行 一些我知道会失败的东西,然后使用修复来修复它,即
RUN dpkg -i wkhtmltox_0.12.6-1.focal_arm64.deb
RUN apt-get update
RUN apt fix-broken install
似乎 apt
认识到 wkhtmltox
由于缺少软件包而未能安装,然后能够安装所有这些软件包。 ...我觉得。
无论如何,即使尝试这样做也意味着允许 Docker 构建在错误的退出代码后继续。
我可以这样做吗?
解决方法如下:
RUN dpkg -i wkhtmltox_0.12.6-1.focal_arm64.deb || true
RUN apt-get update || true
RUN apt fix-broken install || true
除了让它正常工作之外,您可能真的想要一些改进!
- 验证
dpkg
成功引入包 - 使用
apt-get
代替apt
以避免稳定界面警告 - 运行 您所有的
apt
命令都在同一个块中,末尾带有clean
以减小容器大小
# NOTE dpkg -i exits nonzero due to missing dependencies
RUN dpkg -i wkhtmltox_0.12.6-1.focal_arm64.deb ; \
dpkg -l | grep wkhtmltox
RUN apt-get update && \
apt-get -f install && \
apt-get clean