Repository navigation
fix: preserve registry bytes for unmodified image pulls - #14
Merged
Merged
Conversation
|
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.
Pull-only image builds currently deserialize and rebuild the image configuration and OCI manifest. This changes content digests even when the image contents are unchanged, and repeated tag imports can make a running container's original image uninspectable in Docker's containerd store.
Preserve exact registry manifest, config and layer bytes when no image changes are requested. Resolve and cache the raw manifest by its immutable digest, validate that digest, and place tagging annotations on the OCI index descriptor. Derived-image builds retain the existing mutation path.
Validation: 38 library tests pass; the new local-registry test checks two fresh pulls and a cache hit against exact registry blobs. Two independent Alpine pulls produced the same manifest/config IDs; loading both into a Docker 29 daemon with the containerd snapshotter left the first container running and its original image inspectable.
Fixes ALIEN-1254. The local image loader consumer must adopt this commit after review.
Validation: 38 library tests passed. The registry integration test passed against a real local registry, verifying repeated pulls preserve manifest, config, and layer bytes. The consuming concurrent Docker test also passed with both containers running and their images inspectable after concurrent loads.