"exec init"가 podman에서는 작동하지만 동일한 옵션을 사용하는 buildah에서는 작동하지 않는 이유는 무엇입니까?

"exec init"가 podman에서는 작동하지만 동일한 옵션을 사용하는 buildah에서는 작동하지 않는 이유는 무엇입니까?

이 두 명령의 차이점은 무엇입니까? 둘 다 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

이는 우리가 고려한 사항이 아니며 지원할 가능성도 없습니다.

관련 정보