skip to Main Content

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?

2

Answers


  1. 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
    
    Login or Signup to reply.
  2. 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
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search