![如何为 podman 运行提供heredoc?](https://linux22.com/image/217786/%E5%A6%82%E4%BD%95%E4%B8%BA%20podman%20%E8%BF%90%E8%A1%8C%E6%8F%90%E4%BE%9Bheredoc%EF%BC%9F.png)
当我运行时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