繁体   English   中英

将参数传递给docker入口点

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM