1 个不稳定版本
0.4.0 | 2024 年 3 月 20 日 |
---|
#360 在 WebAssembly
18KB
318 行
OCI Tar Builder
这是一个可用于构建 OCI tar 存档的库。它被 wasi-demo-app
crate 用于构建用于运行演示应用的 OCI tar 存档。当前实现支持将 wasi-demo-app
wasm 模块封装为 OCI tar。
贡献
我们欢迎对此做出贡献,以使其更加健壮、有用,并总体上更好。
库使用
该库尚未发布到 crates.io,因此您需要将以下内容添加到您的 Cargo.toml
[dependencies]
oci-tar-builder = { git = "https://github.com/containerd/runwasi.git" }
有关示例,请参阅 wasi-demo-app 构建脚本。
可执行程序使用
有一个实验性的可执行程序,它使用该库并将 wasm 模块打包成具有 wasm 层的 OCI 镜像。有关更多信息,请参阅 containerd 中的 OCI WASM。
使用工具(如 regctl)生成包并将其导入注册表
cargo run --bin oci-tar-builder -- --name wasi-demo-oci --repo ghcr.io/containerd/runwasi --tag latest --module ./target/wasm32-wasi/debug/wasi-demo-app.wasm -o ./dist/img-oci.tar
regctl image import localhost:5000/wasi-demo-oci:latest ./dist/img-oci.tar
查看创建的清单,注意层的媒体类型为 application/vnd.bytecodealliance.wasm.component.layer.v0+wasm
,这些可能会更改。
Name: localhost:5000/wasi-demo-oci:latest
MediaType: application/vnd.oci.image.manifest.v1+json
Digest: sha256:6c48b431d29a1ea1ece13fa50e9f33e4d164e07f6a501dbed668aed947002c5c
Annotations:
io.containerd.image.name: ghcr.io/containerd/runwasi/wasi-demo-oci:latest
org.opencontainers.image.ref.name: latest
Total Size: 2.590MB
Config:
Digest: sha256:beb7483682ae4ec45d02cd7cee8ee733f8dc610cb7e91070dc8f10567365bdd7
MediaType: application/vnd.oci.image.config.v1+json
Size: 138B
Layers:
Digest: sha256:656e978ae0c37156a6abe06052a588e5c700346650765859981ebd2089cffd42
MediaType: application/vnd.bytecodealliance.wasm.component.layer.v0+wasm
Size: 2.590MB
规范
有关OCI tar格式的更多信息,请参阅OCI镜像规范。
为了与Docker兼容,因为Docker目前不支持OCI格式,这还包括一个位于tar根目录下的 manifest.json
文件,该文件以Docker可以导入的方式描述了镜像。
依赖关系
~8–18MB
~258K SLoC