fix: avoid unneccesary temporary layout during build --oci #2936
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.
Description of the Pull Request (PR):
With #2935 in place we can now translate a Docker archive tarball into an OCI-SIF without creating a redundant copy of the image as a temporary OCI layout.
We've previously been processing the buildkit tarball as an oci-archive, which still requires extraction to a temporary layout, as ggcr's tarball package doesn't accept an archived layout without a manifest.json.
Because the buildkit output tarball includes the Docker specific manifest.json, in addition to the standard OCI layout files, it can be treated as a docker-archive - now avoiding the need for the temporary
layout.
Significantly reduces disk space needed by
build --oci
, and theassociated I/O.This fixes or addresses the following GitHub issues:
build --oci
flow #2308Before submitting a PR, make sure you have done the following:
make check
and tested this PR locally with amake test
, andmake testall
if possible (see CONTRIBUTING.md).