If there are multi-architecture package in repository (like amd64 + arm64 + armv7), then there are created multiple untagged packages, which are linked into single tagged package (linked by Docker manifest). It is because each architecture needs separate untagged own package.
Issue
This action keeps the tagged package (like :stable, :latest), but removes linked untagged packages. Finaly it causes error manifest unknown as result of docker pull command`.
Example:
Multi-architecture package with tag latest created for amd64, arm64, armv7. Finally, repository contains 4 packages:
1) Tagged package latest.
Contains the links to all others sha256:... images.
2) Untagged "sha256:something1..."
Build for amd64
3) Untagged "sha256:something2..."
Build for arm64
4) Untagged "sha256:something3..."
Build for armv7
In cleanup script log you can see that "latest" package was skipped because of skip_tags: latest config, but it removed all sha256 untagged packages associated to package with latest tag.
Deleting old versions from user/json-document-storage
Keeping (at least) 0 versions
Will skip images that are older than ${{ input.minimum_days }} days
Skipping images with tags ${{ input.skip_tags }}
Skipping 48492123 (Last Update: 2022-11-02T12:35:26Z) (Tags: 2022.11.02-development-9b4dd9d, 2022.11.02-development, latest): contains a skip tag
Deleting 48492118 (Last Update: 2022-11-02T12:35:25Z) (Untagged)
Successfully deleted
Deleting 48492116 (Last Update: 2022-11-02T12:35:24Z) (Untagged)
Successfully deleted
Deleting 48492115 (Last Update: 2022-11-02T12:35:24Z) (Untagged)
Successfully deleted
Deleted 3 images
Introduction
If there are multi-architecture package in repository (like amd64 + arm64 + armv7), then there are created multiple untagged packages, which are linked into single tagged package (linked by Docker manifest). It is because each architecture needs separate untagged own package.
Issue
This action keeps the tagged package (like
:stable
,:latest
), but removes linked untagged packages. Finaly it causes errormanifest unknown
as result ofdocker pull
command`.Example:
Multi-architecture package with tag
latest
created for amd64, arm64, armv7. Finally, repository contains 4 packages:1) Tagged package
latest
.sha256:...
images. 2) Untagged "sha256:something1..."In cleanup script log you can see that "latest" package was skipped because of
skip_tags: latest
config, but it removed all sha256 untagged packages associated to package withlatest
tag.