Podman을 실행할 수 있도록 heredoc을 제공하는 방법은 무엇입니까?

Podman을 실행할 수 있도록 heredoc을 제공하는 방법은 무엇입니까?

을 실행할 때 buildah주로 heredoc을 사용합니다.

ctr=$(buildah from alpine:3);

buildah run $ctr sh -- <<EOF
  apk update;
  apk add git;
EOF

buildah commit $ctr heredoc_demo;

그런데 Podman으로 동일한 작업을 하려고 하면 다음과 같은 오류가 발생합니다.

경고 입력 장치가 TTY가 아닙니다. --tty 및 --interactive 플래그가 올바르게 작동하지 않을 수 있음

당신은 얻을 수 있습니다,

❯ podman run -ti alpine:3 sh -- <<EOF
  echo 42
EOF
WARN[0000] The input device is not a TTY. The `--tty` and `--interactive` flags might not work properly

아니면 아무 일도 일어나지 않습니다

podman run alpine:3 sh <<EOF

여기서 올바른 호출은 무엇입니까?

답변1

두 가지 옵션이 있습니다. 참고하세요.

  • 사용하지 마세요 -t( --tty)
  • 사용 해주세요 -i( --interactive)

이것은 다음과 같습니다.

podman run -i heredoc_demo sh -- <<EOF
    echo "Hello world";
EOF

또는,

cat <<EOF | podman run -i heredoc_demo sh -
    echo "Hello world";
EOF

관련 정보