[英]pass parameters to docker entrypoint
我有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做动态参数? (如-Dversion=$version
或其他)
我想在启动容器时传递此参数。
--entrypoint something
在Docker 1.11上不起作用;(
您可以在docker run ...
结束时附加动态参数docker run ...
您尚未指定任何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
(覆盖默认情况)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.