chainguard-dev / chainguard-dev/melange
[BUG] Melange fails to saving OCI image locally when using docker runner on MacOS
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 628
- Forks
- 179
- Avg merge
- 14h 55m
- Merged PRs (30d)
- 15
Description
System Specifications
CPU: Apple M4 Pro
Arch: aarch64
Docker Desktop: v4.40.0 (187762)
Melange version:
❯ melange version
...
GitVersion: v0.23.5
GitCommit: unknown
GitTreeState: unknown
BuildDate: unknown
GoVersion: go1.24.2
Compiler: gc
Platform: darwin/arm64
Description
While running tests using make test/<package> in WolfiOS.
MELANGE_EXTRA_OPTS="--log-level=debug --runner=docker" make test/jq
Melange fails to save OCI image locally with docker runner with the following log:
2025/04/10 14:54:12 DEBU docker daemon response: {"status":"Loading layer","progressDetail":{"current":98304,"total":7644644},"progress":"[\u003e ] 98.3\n{"errorDetail":{"message":"lsetxattr /usr/bin/jq: xattr \"com.docker.grpcfuse.ownership\": operation not supported"},"error":"lsetxattr /usr/bin/jq: xattr \"com.docker.grpcfuse.ownership\": operation n\n supported"}
The error changes slightly when different VMMs (Docker VMM, Apple Virtualization framework, QEMU (Legacy)) and file sharing implementations (VirtioFS, gRPC FUSE, osxfs) are used.
Example:
2025/04/10 16:16:43 DEBU docker daemon response: {"status":"Loading layer","progressDetail":{"current":98304,"total":7643959},"progress":"[\u003e ] 98.3\n{"errorDetail":{"message":"lsetxattr /usr: xattr \"com.apple.provenance\": operation not supported"},"error":"lsetxattr /usr: xattr \"com.apple.provenance\": operation not supported"}4b9"}
Here the error is "error":"lsetxattr /usr: xattr \"com.apple.provenance\": operation not supported" instead of "error":"lsetxattr /usr/bin/jq: xattr \"com.docker.grpcfuse.ownership\": operation n\n supported"
It fails to run with all the other combinations that I tried.
QEMU runner works fine for this. This command works MELANGE_EXTRA_OPTS="--log-level=debug --runner=qemu" make test/jq
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Makefile test/ target and the Docker runner entry point, reproducing make test/jq with MELANGE_EXTRA_OPTS="--log-level=debug --runner=docker" on macOS. Compare the Docker-runner failure with the working QEMU command and inspect the debug response around OCI image loading. Done means the Docker runner saves and loads the local OCI image without the reported xattr errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, go
- Domain
- build-system, devops
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100