Date: 2021-05-27
accepted
Docker allows tags to be defined for the images in a docker repository. The default tag that is used unless anything else is specified is the “latest” tag. This goes both for publishing and pulling images, unless anything else is specified you get “latest”.
Previously the wikibase repository has shipped wikibase/wikibase images with three different latest tags depending on the flavor of wikibase.
There are many arguments being presented against using “latest” when running docker images[1][2]. It comes with an uncertainty of what image we are actually getting, as latest does not necessarily mean the last image uploaded or the latest version but rather just the image tagged as “latest”. It sort of serves as an easy and rather uninformed way of choosing what version to run.
On the other hand it is also a common concept in docker and on dockerhub.
As an example for kubernetesui they have decided not to publish a latest tag but the suggested download method on dockerhub is still presented as:
docker pull kubernetesui/dashboard
Running this example:
$ docker pull kubernetesui/dashboard
Using default tag: latest
Error response from daemon: manifest for kubernetesui/dashboard:latest not found: manifest unknown: manifest unknown
Which when issued results in nothing being pulled because of the missing latest tag. This might seem like a sloppy mistake but probably a very concious decision as kubernetes tends to pull the images every time the images are used.
In most cases for wikibase automatically getting a new version from the “latest” tag would put the instance in a state where a manual update would be required.
As per previous discussions during the hike, one downside of making everything “too” easy to get up and running is that the end-users aren’t fully aware what they are running or why they would need it. Therefore producing the latest tag seems like a easy thing to skip in order to avoid these kind of accidental selections and forcing the decision to be made by the user.