使用 Dockerfile CMD 构建参数

Build argument with Dockerfile CMD

在我的Dockerfile cmd命令中是这样的,

CMD ["java", "-javaagent:dd-java-agent.jar", "-Ddd.env=my_env", "-Ddd.agent.host=172.17.0.2", "-jar", "app.jar"]

我想在构建图像或 运行 容器时使 dd.agent.hostdd.env 值动态化。

任何人都可以告诉我一种无需更改 CMD ["sh", "-c", "java..."] 格式即可执行此操作的方法。

当我更改为 CMD ["sh", "-c", "java..."] 并使用 ARG 和 ENV 执行此操作时,更改 log4j2.xml 文件环境变量 (${env:service-host}) 未获取值。对此有什么想法吗?

经过对这个问题的研究,我发现不在CMD中设置-Ddd.agent.host和-Ddd.env我们可以在docker 运行命令中传递它作为一个环境变量。我在 docker 运行 命令中添加了以下内容。

-e DD_AGENT_HOST=172.17.0.2 -e DD_ENV=my_env