将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 (覆盖默认情况下)