DEV Community

Cover image for Moving Lagoon to semantic versioned Docker Images
Toby Bellwood for Lagoon

Posted on

Moving Lagoon to semantic versioned Docker Images

One of the more visible issues with our Docker image publishing process was that some of the images were being published with very complicated tags.

For example: amazeeio/php:7.4-cli-drupal-v1.8.2 was release 1.8.2 of the PHP image for Drupal CLI, based on PHP 7.4.

With more and more services now performing automated dependency resolution and updates for git-based workflows, our tagging system was virtually impossible for these tools to decipher.

Instead, we will be renaming all the images to a standard format, as well as dual-publishing our images to our uselagoon organisation in Docker Hub.

This means the above image will become uselagoon/php-7.4-cli-drupal:1.8.2. Shifting each variant of each application into its own unique namespace allows us to use the tag purely for the specific version.

This will unlock the ability for our downstream customers to pin their projects to our published releases, and enable a wider range of automated tools that support automated Docker dependency updates (Whitesource Renovate, Dependabot and others) to generate pull requests automatically for any new Lagoon image release, which can then trigger Lagoon to automatically build them.

We will also be adopting a date-based tagging system, with a scheduled release every month – using the year/month to identify a set of images, with the ability to provide “patch” release images mid-cycle.

For example, uselagoon/nginx:20.12.0 would be the December 2020 release of the NGINX image.

Maintaining Legacy Tags

To ensure minimum disruption to our existing customers, we will be maintaining the current tag naming system for our images. While there are obvious benefits to the new naming system, we want to make sure that we are backward-compatible, so we will continue to release the images to both the new and old tag systems. We will be moving our example repositories across to the new versions as soon as they are available, and are anticipating that future projects would be built on the new versions too.

Check out the images

Head over to our new Docker Hub repository at https://hub.docker.com/u/uselagoon and see the published images for yourself - you should also plan to migrate from your current amazeeio/-based images to the uselagoon/ namespace.

Discussion (0)