Skip to content

Make latest a post-build multi-arch alias#374

Closed
Wuodan wants to merge 3 commits intonikolaik:mainfrom
Wuodan:upstream-PR/01-fix-latest-tag-missing-for-arm64
Closed

Make latest a post-build multi-arch alias#374
Wuodan wants to merge 3 commits intonikolaik:mainfrom
Wuodan:upstream-PR/01-fix-latest-tag-missing-for-arm64

Conversation

@Wuodan
Copy link

@Wuodan Wuodan commented Mar 17, 2026

Determine the canonical latest image from the current build set and publish latest after the multi-arch images have been built.

This replaces the separate latest build path with a post-build tag publish, so latest is published for all supported architectures. Use regctl image copy to retag the canonical multi-arch image without rebuilding it.

This also avoids additional authenticated registry reads during latest-tag publication, which helps stay clear of Docker Hub pull-rate limits.

Remove the root Dockerfile because it only existed for the separate Docker Hub Automated Build path. Any Docker Hub automated build still configured to use that file must be disabled in Docker Hub.

Fixes #263.

This PR includes the commits of PR #373 as I needed those to run tests in my fork.

Wuodan added 2 commits March 17, 2026 02:30
Keep nikolaik/python-nodejs as the default image name in the workflow, but resolve it through a GitHub Actions variable so forks can publish to a different image without changing the repository.

Forks can set IMAGE_NAME in Actions variables or in workflow run configuration. That keeps the default behavior unchanged here while avoiding fork-specific edits in PRs.
Allow manual workflow runs from GitHub Actions with a force option and an optional IMAGE_NAME override.
This makes it possible to test publish flows without overwriting the real published images tags.
@Wuodan Wuodan force-pushed the upstream-PR/01-fix-latest-tag-missing-for-arm64 branch from b6d7e71 to cd6fec5 Compare March 17, 2026 03:35
Determine the canonical latest image from the current build set and publish `latest` after the multi-arch images have been built.

This replaces the separate `latest` build path with a post-build tag publish, so `latest` is published for all supported architectures. Use `regctl image copy` to retag the canonical multi-arch image without rebuilding it.

This also avoids additional authenticated registry reads during latest-tag publication, which helps stay clear of Docker Hub pull-rate limits.

Remove the root Dockerfile because it only existed for the separate Docker Hub Automated Build path. Any Docker Hub automated build still configured to use that file must be disabled in Docker Hub.

Fixes nikolaik#263.
@Wuodan Wuodan force-pushed the upstream-PR/01-fix-latest-tag-missing-for-arm64 branch from cd6fec5 to c0ee392 Compare March 17, 2026 04:34
@Wuodan
Copy link
Author

Wuodan commented Mar 17, 2026

This solution with tagging latest after all images and manifests have been pushed still pulls from docker.io, thus affecting the 200 pulls per 6h for free accounts.

The better way is to add is_latest to the image matrix and tagging latest during normal building of images and manifests.

I'm closing this PR and will open a new one for the other solution.

@Wuodan Wuodan closed this Mar 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Why doesn't latest tag have linux/arm64 version?

1 participant