Skip to content

Conversation

@sairon
Copy link
Member

@sairon sairon commented Nov 11, 2025

Importing docker-archive format leads to some layers missing in the content storage which results in some image metadata missing. This appears to be the same regression as moby/moby#49473. Importing OCI archives when bootstrapping the data partition seems to work this bug around.

Fixes #4385

Summary by CodeRabbit

  • Chores
    • Updated container image storage format in build infrastructure.

Importing docker-archive format leads to some layers missing in the content
storage which results in some image metadata missing. This appears to be the
same regression as moby/moby#49473. Importing OCI archives when bootstrapping
the data partition seems to work this bug around.

Fixes #4385
@sairon sairon requested a review from agners November 11, 2025 14:07
@sairon sairon added the build Build and CI related issues label Nov 11, 2025
@coderabbitai
Copy link

coderabbitai bot commented Nov 11, 2025

📝 Walkthrough

Walkthrough

Modified the image copy destination format in the container fetch workflow from docker-archive to OCI-archive format, maintaining existing source path, destination variable, and retry mechanisms.

Changes

Cohort / File(s) Summary
Container image format update
buildroot-external/package/hassio/fetch-container-image.sh
Changed image archive format from docker-archive to OCI-archive in the copy operation while preserving source, destination path variable, and retry logic

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

  • Single file modification with a straightforward format conversion
  • No changes to control flow, error handling, or retry mechanisms
  • Verify that OCI-archive format is compatible with Containerd snapshotter expectations and resolves the metadata issue in linked issue

Pre-merge checks and finishing touches

✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main change: switching from docker-archive to OCI archive format in the hassio import process to resolve Containerd snapshotter issues, which directly aligns with the PR's core objective.
Linked Issues check ✅ Passed The PR addresses the linked issue #4385 by implementing the workaround described: using OCI archive format instead of docker-archive when bootstrapping, which should preserve image metadata and prevent the missing Config/Env metadata that caused the TypeError.
Out of Scope Changes check ✅ Passed The change is narrowly scoped to modifying the image copy destination from docker-archive to OCI-archive in the fetch-container-image.sh script, directly addressing the stated objective with no extraneous modifications.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix-hassio-containerd-snapshotter

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between 13b2f05 and 9907bdb.

📒 Files selected for processing (1)
  • buildroot-external/package/hassio/fetch-container-image.sh (1 hunks)
🔇 Additional comments (1)
buildroot-external/package/hassio/fetch-container-image.sh (1)

55-55: Let me verify the file exists and try a broader search approach:

Based on my verification, I can now generate the rewritten review comment. The evidence conclusively shows that:

  1. OCI archive format is widely used with buildroot and skopeo, with examples showing skopeo copy oci-archive: commands used to consume buildroot-generated images
  2. Buildroot has native support for OCI archives
  3. Buildroot uses sloci to generate OCI images

The change is technically sound and properly aligned with buildroot's design.


OCI archive format is compatible with buildroot and downstream tooling.

The change from docker-archive: to oci-archive: is correct. Buildroot and skopeo routinely use oci-archive format for image distribution and consumption, and buildroot has native support for OCI archives. The modification aligns with the PR objective to fix the Containerd snapshotter metadata bug while using a format that is fully compatible with the build system's downstream processing.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Member

@agners agners left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, nice find!

@sairon sairon merged commit 55655f5 into dev Nov 11, 2025
3 checks passed
@sairon sairon deleted the fix-hassio-containerd-snapshotter branch November 11, 2025 14:39
@github-actions github-actions bot locked and limited conversation to collaborators Nov 19, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

build Build and CI related issues cla-signed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docker image metadata missing for images pulled by clean 17.0.dev installs

3 participants