这是我的 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 ?
最佳答案
如果您必须传递参数 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" ...
关于java - Docker java将启动参数传递给jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44483838/