我想让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
以避免出现稳定的接口警告 - 在最后使用
clean
的同一块中运行所有apt
命令,以减小容器大小
# 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