将parameter passing给docker入口点
我有Dockerfile
FROM java:8 ADD my_app.jar /srv/app/my_app.jar WORKDIR /srv/app ENTRYPOINT ["java", "-jar", "my_app.jar", "--spring.config.location=classpath:/srv/app/configs/application.properties"]
在入口点如何在没有./run.sh
情况下为java创builddynamic参数? (如-Dversion=$version
或其他)
我想在启动容器时传递这个参数。
--entrypoint something
不能在Docker 1.11上工作;(
您可以在docker run ...
结束时附加您的dynamic参数。 你还没有指定任何CMD
指令,所以它会工作。
什么是实际运行没有指定任何命令在运行docker run ...
,是这样的:
ENTRYPOINT CMD
(它连接在一起并且有一个空格)
所以你也可以使用类似的东西
... ENTRYPOINT ["java", "-jar", "my_app.jar"] CMD ["--spring.config.location=classpath:/srv/app/configs/application.properties"]
这意味着,在使用时
docker run mycontainer
的
java -jar my_app.jar --spring.config.location=classpath:/srv/app/configs/application.properties
将被调用(默认情况下),但在运行时
docker run mycontainer --spring.config.location=classpath:/srv/app/configs/some_other_application.properties -Dversion=$version
它将运行w /不同的属性文件和系统属性称为version
(覆盖默认情况下)