On 2025/8/22 14:00, ChengyuZhu6 wrote:
From: Chengyu Zhu <hud...@cyzhu.com>

This patch adds support for building EROFS filesystems from
OCI-compliant container registries, enabling users to create EROFS
images directly from container images stored in registries like
Docker Hub, Quay.io, etc.

The implementation includes:
- OCI remote backend with registry authentication support
- Manifest parsing for Docker v2 and OCI v1 formats
- Layer extraction and tar processing integration
- Multi-platform image selection capability
- Both anonymous and authenticated registry access
- Comprehensive build system integration

Configure: ./configure --enable-oci
New mkfs.erofs option: --oci=registry/repo:tag[,options]

Supported options:
- platform=os/arch (default: linux/amd64)
- layer=N (extract specific layer, default: all layers)
- anonymous (use anonymous access)
- username/password (basic authentication)

e.g.:
- mkfs.erofs \
   --oci=quay.io/chengyuzhu6/golang:1.22.8 \
   image.erofs /tmp/output
- mkfs.erofs \
   --oci=quay.io/chengyuzhu6/golang:1.22.8,anonymous \
   image.erofs /tmp/output
- mkfs.erofs \
   --oci=zcy1234/test-private,username=zcy1234,password=PASSWD \
   image.erofs /tmp/output
- mkfs.erofs \
   --oci=quay.io/chengyuzhu6/golang:1.22.8,layer=1 \
   layer.erofs /tmp/output
- mkfs.erofs \
   --oci=quay.io/chengyuzhu6/golang:1.22.8,platform=linux/arm64 \
   image.erofs /tmp/output

Hi Chengyu,


BTW, what does this `/tmp/output` do? I think this parameter is for <src_path>

and would it be weird to have `/tmp/output` here since the datasource is OCI registry?


Thanks,

Yifan Zhao

Signed-off-by: Changzhi Xie <s...@qq.com>
Signed-off-by: Chengyu Zhu <hud...@cyzhu.com>


Reply via email to