Github Docker Package Registry Support for Immutable Tags

Does the package registry support immutable tags for docker repositories?  I can’t seem to find any documentation saying it does.  Is this something it will support in the future?

1 Like

Hi @derekssmith,

Thank you for being here! Docker images, and package versions, across the registry are all immutable at present. We also don’t allow the deletion of public packages: https://help.github.com/en/articles/configuring-docker-for-use-with-github-package-registry#deleting-a-package

We’re currently working on the retention policy and deletion process for private packages - in the meantime we can delete these at a users request.

At the moment Docker tags are mutable, but the tag name can’t be removed completely.

Could you let me know more about how you would use immutable tags? What would you expect the interface to look like?

1 Like

Ideally, one could use inclusion and/or exclusion lists of strings/patterns to set mutability on a per-tag basis. You could probably also use an interface similar to protected branches.

In my case, I would like to set only “latest” and “stable” as mutable for now.

@jcansdale Its pretty straightforward. Once a tag is published to a registry, it should never point to something else (aside from things like latest, stable etc.) This ensures that replacing images for the same tag will never result in unintended consequences in some environment. In other registries, when pushing to an immutable tag that already exists, the operation fails.

Would latest and stable be explicitly set as mutable with the default being immutable?

I’d think one could set the default state of a registry mutable/immutable and then depending on the default state select specific tags that would be exceptions.

2 Likes