首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker CMD,带envsubst和tee

Docker CMD,带envsubst和tee
EN

Stack Overflow用户
提问于 2016-10-07 01:08:02
回答 1查看 2K关注 0票数 1

我目前有一个Dockerfile,其中包含以下CMD行:

代码语言:javascript
复制
CMD ["/bin/bash", "-c", "envsubst < td-agent.conf | tee /etc/td-agent/td-agent.conf && td-agent"]

映像构建得很好,但当我运行它时,它会抱怨:

代码语言:javascript
复制
Usage: td-agent [options]
-s, --setup [DIR=/etc/td-agent]  install sample configuration file to the directory
-c, --config PATH                config file path (default: /etc/td-agent/td-agent.conf)
    --dry-run                    Check fluentd setup is correct or not
-p, --plugin DIR                 add plugin directory

基本上是在抱怨我没有正确地执行命令。奇怪的是,如果我启动容器(不做任何替换),那么这个命令在容器中执行得很好。

我能做错什么呢?

EN

回答 1

Stack Overflow用户

发布于 2016-10-07 05:09:19

CMD命令有两种形式:

CMD ["executable","param1","param2"] (exec表单)和

CMD command param1 param2 (外壳形式)

基本上,您使用的是exec表单,而您应该使用shell表单:

CMD envsubst < td-agent.conf | tee /etc/td-agent/td-agent.conf && td-agent

更好的是:

CMD envsubst < td-agent.conf | tee /etc/td-agent/td-agent.conf && exec td-agent

更多信息:https://docs.docker.com/engine/reference/builder/#/cmd

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39901903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档