【问题标题】:jar file with arguments in dockerdocker中带有参数的jar文件
【发布时间】:2016-12-16 13:32:23
【问题描述】:

直升机,

我有一个 java .jar 文件,当我从终端运行它时,它接受一堆参数作为输入。我想制作一个 docker 映像并运行它,其中包含我仍然可以传递参数的 jar 文件jar 文件。

【问题讨论】:

  • 你已经创建了 docker 容器了吗?您的容器可以由带有 java 的容器继承。只需将您的 jar 文件复制到上面,您就可以在本地计算机上使用它。你到底在哪里挣扎? Stack Overflow 无法解决您可以轻松阅读的所有问题...

标签: java docker dockerfile


【解决方案1】:

将 jar 文件设置为您的 entrypoint,并将 args 设置为您的 command

一个例子:

ENTRYPOINT ["/path/to/my/java.jar"]
CMD ["my", "default", "args"]

然后,您可以在运行容器时覆盖 args,使用:

docker run <my-docker-image> some custom args

更多信息在这里:http://goinbigdata.com/docker-run-vs-cmd-vs-entrypoint/

【讨论】:

  • 虽然评论看起来很合乎逻辑,但我在运行图像时出现错误,尽管正确设置了 jar 的路径,但没有这样的文件或目录。谢谢您的帮助!
  • 那么你需要将你的dockerfile添加到问题中,因为这里没有足够的信息来解决你的问题
  • 很老了,但他的问题也很清楚。我们只想这样做java -jar -Dargs1... app.jar。我想要相同的,但动态它不起作用。 XD 当我说动态时。我说的是ENV JAVA_ARGS 为CMD java -jar $JAVA_ARGS app.jar。
  • ENTRYPOINT 的 'exec' 形式不支持变量扩展,所以我会使用 ENTRYPOINT 的 'shell' 形式来代替你想做的事情。像这样: ENV JAVA_OPTS "-XX:+UseG1GC -XX:+UseContainerSupport" ENTRYPOINT exec java ${JAVA_OPTS} -jar /app/app.jar
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-17
  • 2017-02-13
  • 2018-03-19
  • 1970-01-01
  • 1970-01-01
  • 2012-04-17
  • 2011-08-26
相关资源
最近更新 更多