目标是从容器内的主机运行脚本setup-debian-server.sh
,并在没有错误的情况下提交图像。
这个东西将脚本行作为bash
的参数提供给它们,并附加到它们hostname
以打印容器的ID。
它将参数传递给脚本:--script-par1=abc
。
(
did="$(
docker run ubuntu:15.04 /bin/bash -c "$(<./setup-debian-server.sh); echo; hostname;" -- --script-par1=abc |
tail -n1;
exit ${PIPESTATUS[0]}
)" && docker commit "$did" my/base
)
问题是setup-debian-server.sh
标准丢失了。这总体上很难看。
我玩了一些exec {FD}>&1
命令但是没有可靠地刷新stdout(我希望总共有3行输出,但有时候是2行):
(exec {FD}>&1 && /bin/bash -c "hostname; echo 123;" | tee /dev/fd/$FD | head -n1)
如何完成这个简单的任务?