【问题标题】:How to execute .jar from pom.xml from cloned project in Dockerfile如何从 Dockerfile 中克隆项目的 pom.xml 执行 .jar
【发布时间】:2017-01-07 12:33:04
【问题描述】:

我的 Dockerfile 中有这个:

FROM maven:3.3-jdk-8-alpine

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app


RUN apk add --no-cache curl tar bash wget git

RUN git clone https://MyProfile@bitbucket.org/MyProfile/myproject.git
RUN cd myproject

WORKDIR /usr/src/app/myproject

ONBUILD ADD . /

ONBUILD RUN mvn install

EXPOSE 4568
CMD ["java","-jar","/usr/src/app/myproject/target/ReadDocFile.jar"]

我能够弄清楚如何从克隆的 repo 安装 pom - 但我不知道我的最终 .jar 存储在哪里。我只是找不到.jar。 mvn install 在哪里存储它?我不想使用 ONBUILD 图像,因为我的项目需要从 git repo 构建。那么如何解决这个问题 - 如何找到 mvn install 存储我的最终 .jar 以供执行的路径?

【问题讨论】:

  • mvn install 将其放入您的本地仓库中。
  • @Dave Newton - 以及如何将它放在 docker 文件系统路径上?如何从什么类型的路径“抓取”那个 .jar?
  • 它将在您的目标文件夹中,您可以在其中从本地 git repo 运行 mvn install
  • @Bandi Kishore 但我没有从本地 git repo 运行 mvn install 。如您所见, mvn install 从 git clone 执行 pom(我检查了它,确实如此)。那么目标文件夹在哪里,你能描述路径吗(如果不是我的例子)?

标签: java maven docker dockerfile


【解决方案1】:

如果您没有自己设置 maven,您的依赖项可能在您的 {user}/.m2/{the group name} 中。

你的 Jar 应该在 /target/

【讨论】:

  • 如何设置,如何找到?我使用 /bin/bash 进入 docker 并在那里运行 mvn install 。它显示了:[INFO] 将 /usr/src/app/myproject/target/ReadDocFile.jar 安装到 /root/.m2/repository/com/dario/myproject/0.0.1-SNAPSHOT/apachepoi-0.0.1-SNAPSHOT .jar 但是当我在 Dockerfile 中输入最后一个命令时,它不起作用 - CMD
  • 附言。我尝试在 docker 容器、容器中打印所有生成的文件夹和文件,但目标中没有 .jar - 我把它放在“EXPOSE 4568”行之前:RUN cd /usr/src/app/ RUN ls -altrR
  • 您在寻找项目的 Jar 吗?你必须运行 mvn package
  • nija123098 ONBUILD RUN mvn install 也执行包。也许这个 ONBUILD 是我不需要的东西?
  • 那么它应该在maven的目标目录中,与src在同一个文件夹中
猜你喜欢
  • 2011-04-08
  • 2016-09-02
  • 2018-08-03
  • 2021-12-21
  • 2015-08-04
  • 2016-11-30
  • 1970-01-01
  • 2020-04-16
  • 1970-01-01
相关资源
最近更新 更多