我目前有一个Dockerfile,其中包含以下CMD行:
CMD ["/bin/bash", "-c", "envsubst < td-agent.conf | tee /etc/td-agent/td-agent.conf && td-agent"]映像构建得很好,但当我运行它时,它会抱怨:
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基本上是在抱怨我没有正确地执行命令。奇怪的是,如果我启动容器(不做任何替换),那么这个命令在容器中执行得很好。
我能做错什么呢?
发布于 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://stackoverflow.com/questions/39901903
复制相似问题