Docker java将启动参数传递给jar

时间:2017-06-11 12:26:24

标签: java docker

这是我的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来传递param?

1 个答案:

答案 0 :(得分:1)

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

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

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

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