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" ...