gpt4 book ai didi

带有 envsubst 和 tee 的 Docker CMD

转载 作者:行者123 更新时间:2023-12-02 20:19:23 26 4
gpt4 key购买 nike

我目前有一个带有以下 CMD 行的 Dockerfile:

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

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

我可能做错了什么?

最佳答案

CMD命令有两种形式:
CMD ["executable","param1","param2"] (执行表格)和
CMD command param1 param2 (外壳形式)

基本上,您使用的是应该使用 shell 形式的 exec 形式:
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

关于带有 envsubst 和 tee 的 Docker CMD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39901903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com