处理器 API
处理器是一种二进制 API,可通过内容流工作。
传入的内容流将通过 STDIN
理程序,而流处理程序将在
STDOUT "上输出处理后的数据流。 如果遇到错误,必须通过 STDERR
返回错误信息,同时返回非零退出状态。
可以通过有效载荷向流处理器提供附加信息。有效载荷以 protobuf.Any
类型编译,可以封装任何类型的序列化数据结构。
在 Unix 系统上,有效载荷(如果可用)将在进程的 fd 3
中提供。
在 Windows 系统上,有效载荷(如果可用)通过命名管道提供,管道的路径设置为环境变量 STREAM_PROCESSOR_PIPE
的值。
配置
要为 containerd 配置流处理器,需要在配置文件中添加条目。
stream_processors "字段是一个映射,因此用户可以将多个处理器串联起来来改变内容流。
处理器字段:
- Key - 处理器的 ID,用于将特定的有效载荷传递给处理器。
accepts
- 处理器可处理的媒体类型。returns
- 处理器返回的媒体类型。path
- 处理器二进制文件的路径。args
- 传给处理器二进制文件的参数。
version = 2
[stream_processors]
[stream_processors."io.containerd.processor.v1.pigz"]
accepts = ["application/vnd.docker.image.rootfs.diff.tar.gzip"]
returns = "application/vnd.oci.image.layer.v1.tar"
path = "unpigz"
args = ["-d", "-c"]