image: publish per-image OCI title and description labels#155
Merged
Conversation
2 tasks
docker/metadata-action previously derived every label from the repository, so all nine images shared the same generic title and description. Add a top-level description field to each build.yaml (moving variant entries under a variants key), expose it through a new build-config.sh description subcommand, and override the org.opencontainers.image.title/description labels and index annotations with per-image values at publish time. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rt6cdQY4Q3ie1xpMgyy33S
57e3cf5 to
9b5e078
Compare
92ebfce to
30f7fa7
Compare
4 tasks
Co-authored-by: Claude <noreply@anthropic.com>
The description field introduced for per-image OCI labels only named the runtime/tool (e.g. "Go toolchain on Debian"), which doesn't convey Dev Container purpose to someone browsing the registry without this repository's context. State that explicitly in every image's description. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rt6cdQY4Q3ie1xpMgyy33S
docker/metadata-action's labels and annotations are independent inputs (DOCKER_METADATA_ANNOTATIONS_LEVELS only controls where annotations attach, not what feeds them), so the per-image org.opencontainers.image.title/description override only reached the labels output, not the manifest/index annotations actually pushed to the registry via docker/build-push-action's annotations input and imagetools create --annotation. Set the same override on both inputs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rt6cdQY4Q3ie1xpMgyy33S
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
docker/metadata-actionpreviously derived every label from the repository, so all nine images shared the same generic title and description.descriptionfield to eachbuild.yaml(moving variant entries under a newvariantskey), expose it through a newbuild-config.sh descriptionsubcommand, and override theorg.opencontainers.image.title/descriptionlabels and index annotations with per-image values at publish time inpublish-image.yml.This PR has no file-level dependency on any other PR in this series and can be merged independently.
Note: #156 (mise bookworm removal) has already been merged into this PR's branch (stacked-PR merge target), so this PR's diff now also includes that change. #157 (README sync) and #158 (checksum pinning) remain based on this branch and will retarget to
mainautomatically once this merges.Test plan
build.yamlfiles and simulatedbuild-config.sh all-matrixoutput locallybuild-checks.ymlandrelease.ymldry-run pass with the new schemabuild.yamldependencies (indentation-agnostic regex managers)