Home > Back-end >  Do something using Dockerfile RUN but ignore errors
Do something using Dockerfile RUN but ignore errors

Time:03-17

I think I want to have Docker RUN something which I know will fail, but then use a repair to fix it up, i.e.

RUN dpkg -i wkhtmltox_0.12.6-1.focal_arm64.deb
RUN apt-get update
RUN apt fix-broken install

It seems that apt recognises that wkhtmltox failed to install due to missing packages and is then able to install them all. ...I think.

Anyway, even trying this means allowing the Docker build to continue upon a bad exit code.

Can I do that?

CodePudding user response:

Here is the solution:

RUN dpkg -i wkhtmltox_0.12.6-1.focal_arm64.deb || true
RUN apt-get update || true
RUN apt fix-broken install || true

CodePudding user response:

You may really want a few improvements in addition to just getting this working!

  • verify dpkg successfully brought in the package
  • use apt-get instead of apt to avoid the stable interface warning
  • run all your apt commands in the same block with clean at the end to reduce container size
# 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
  • Related