Docker java将启动parameter passing给jar

这是我的Dockerfile:

FROM java:8 EXPOSE 8080 ADD target/Demo.jar demo.jar RUN sh -c 'touch /demo.jar' ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /demo.jar" ] 

而我的问题是如何传递一些启动参数像在正常调用.jar文件。 例如,当我打电话给:

java -jar demo.jar param1 param2

然后我可以得到param1在我的应用程序,所以告诉我如何执行我的Dockerfile传递参数?

如果您必须传递参数param1和param2,则可以直接在Dockfile中传递它们:

 ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /demo.jar param1 param2" ] 

或者如果要从外部设置它们,可以使用环境variables,例如:

 ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /demo.jar $my_params" ] 

然后使用-e选项运行它:

 docker run -e my_params="param1 param2" ...