Home > Blockchain >  `docker-compose` force run old image
`docker-compose` force run old image

Time:12-24

I was running the very good Linux Server IO Unifi Controller Docker image on my Raspberry Pi 3.

Unfortunately, this image no longer supports ARM32 since 2022-06-01.

I didn't realise this when I ran docker-compose pull to update to the latest image and now my controller won't work with the error message:

unifi-controller    |     ********************************************************
unifi-controller    |     ********************************************************
unifi-controller    |     *                                                      *
unifi-controller    |     *                         !!!!                         *
unifi-controller    |     *     This Unifi-Controller image does not support     *
unifi-controller    |     *        32 bit ARM due to a lack of OS packages       *
unifi-controller    |     *                                                      *
unifi-controller    |     *                                                      *
unifi-controller    |     ********************************************************
unifi-controller    |     ********************************************************

Is there any way to pin docker-compose back to the pre-deprecation version?

When I run docker image ls, I still have the following images available on my system:

REPOSITORY                             TAG       IMAGE ID       CREATED         SIZE
lscr.io/linuxserver/unifi-controller   latest    deeabba24529   10 days ago     102MB
lscr.io/linuxserver/unifi-controller   <none>    048ec856c236   9 months ago    524MB
lscr.io/linuxserver/unifi-controller   <none>    4858fc11dcf2   10 months ago   520MB

Or I could adjust the version in docker-compose.yml to select an old version perhaps.

I understand the risks of running old software but the newer 64 bit Raspberry Pi 4s are out of stock in my country so immediate ability to upgrade hardware is limited and I need access to my network configuration.

CodePudding user response:

Just set the image: configuration for the relevant containers in your docker-compose.yaml to a specific version, e.g:

image: lscr.io/linuxserver/unifi-controller:latest

Use something like:

image: lscr.io/linuxserver/unifi-controller:arm32v7-7.3.76

Or whichever version is appropriate. Using the latest tag is often considered an anti-pattern for exacly this reason -- upgrades to a new major version can break your application stack. In most cases it's better to pin your docker-compose.yml to a specific version.

Most image repositories have a browseable interface for discovering available tags. I'm not familiar with the lscr.io repository, but if there's not a convenient web interface you can use skopeo:

skopeo list-tags docker://lscr.io/linuxserver/unifi-controller
  • Related