使用 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.host
和 dd.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
在我的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.host
和 dd.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