「exec init」がpodmanでは動作しますが、同じオプションを使用するbuildahでは動作しないのはなぜですか?

「exec init」がpodmanでは動作しますが、同じオプションを使用するbuildahでは動作しないのはなぜですか?

これら2つのコマンドの違いは何ですか?どちらもpid 1でシェルを起動し、同じマウントとボリュームを作成します。

buildah run --tty --mount type=tmpfs,destination=/run -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
  $(buildah from centos:7) /bin/sh -c 'exec /sbin/init'

podman run -ti    --mount type=tmpfs,destination=/run -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
  centos:7                 /bin/sh -c 'exec /sbin/init'

しかし、Podmanだけが動作します。私はここで何を誤解していますか?

ベストアンサー1

Podman runは、init(systemd)システム用の正しい実行環境を構成します。ビルドしないでください。私たちの目標は、PodmanをBuildahと同じように実行することではありません。

buildah run は Continerfile(Dockerfile) の RUN コマンドと同じです。私は誰もこのようなContainerfileを生成するのを見たことがないからです。

FROM centos:7
RUN /bin/init

これは私たちが考慮したものではなく、サポートする可能性もありません。

おすすめ記事