如何让docker容器从stdin读取?

时间:2017-06-07 19:51:58

标签: docker

我有一个脚本,我想用它来使用Sigil(基于Go的模板引擎)来填充模板文件

我通过以下方式使用了一个dockerized sigil:

docker run -v ${TEMPLATE_DIR}:/tmp/sigil mikegrass/gliderlabs_sigil-docker/sigil -f prometheus-configmap.yaml -p API_SERVER=$api_server_url > $TEMP_FILE

这对于映射卷似乎有点笨拙,所以我宁愿使用STDIN传入文件....

所以我想要的是

cat ./prometheus-configmap.yaml | docker run mikegrass/gliderlabs_sigil-docker -p API_SERVER=$api_server_url > $TEMP_FILE

不幸的是,这不起作用,我没有输出。

谷歌搜索我看到可能的解决方案,但没有任何工作......

有什么建议吗?

由于

2 个答案:

答案 0 :(得分:10)

您需要使用--interactive-i

以交互模式运行容器
cat ./prometheus-configmap.yaml | docker run -i mikegrass/gliderlabs_sigil-docker -p API_SERVER=$api_server_url > $TEMP_FILE

答案 1 :(得分:0)

没有猫:

docker run -i mikegrass/gliderlabs_sigil-docker -p API_SERVER=$api_server_url < ./prometheus-configmap.yaml