如何为 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 做同样的事情时,我收到这样的错误,

警告[0000] 输入设备不是 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

相关内容