【问题标题】:How write correctly a Docker file to build war file and run spring-boot maven project?如何正确编写 Docker 文件来构建 war 文件并运行 spring-boot maven 项目?
【发布时间】:2020-11-01 02:18:23
【问题描述】:

Dockerfile:

FROM maven:3.6.3-jdk-11

RUN mvn clean install

RUN mvn spring-boot:run

然后运行,

$ docker image build -t  hello-world .

当我运行上面的命令时会出现以下错误。

将构建上下文发送到 Docker 守护进程 206.6MB

步骤 1/3 : FROM maven:3.6.3-jdk-11 ---> 918519009705

第 2/3 步:运行 mvn clean install ---> 在 d915d2ac25e7 中运行

[INFO] 正在扫描项目...

[信息] --------------------------------------------- ----------------------------------------

[信息] 构建失败

[信息] --------------------------------------------- ----------------------------------------

[INFO] 总时间:0.153 秒

[INFO] 完成于:2020-07-11T12:33:30Z

[信息] --------------------------------------------- ----------------------------------------

[错误] 您指定的目标需要执行项目,但此目录 (/) 中没有 POM。请确认您从正确的目录调用了 Maven。 -> [帮助 1]

[错误] [错误] 要查看错误的完整堆栈跟踪,请使用 -e 开关重新运行 Maven。

[错误] 使用 -X 开关重新运行 Maven 以启用完整的调试日志记录。

[错误] [ERROR] 有关错误和可能的解决方案的更多信息,请阅读以下文章:

[错误] [帮助1]http://cwiki.apache.org/confluence/display/MAVEN/MissingProjectException

现在,您能解释一下使用 docker image for windows 构建(.war 文件)和运行 maven 项目的正确方法吗?

【问题讨论】:

  • 你还没有COPYed 任何内容到你的图像中,所以 Maven 找不到pom.xml 文件或你的任何源代码。

标签: java spring spring-boot docker maven


【解决方案1】:

您需要复制 pom.xml 以及 源代码,以便它们可以在容器中用于构建。然后你可以执行运行步骤。

例子:

### BUILD image
FROM maven:3-jdk-11 as builder
# create app folder for sources
RUN mkdir -p /build
WORKDIR /build
COPY pom.xml /build
#Download all required dependencies into one layer
RUN mvn -B dependency:resolve dependency:resolve-plugins
#Copy source code
COPY src /build/src
# Build application
RUN mvn package

来自https://dzone.com/articles/spring-boot-run-and-build-in-docker的代码sn-p 访问以获得完整的解释。

【讨论】:

  • 成功构建 docker 映像后,运行 docker run :tag 将显示以下错误:[错误] 没有为此构建指定目标。您必须以 ::[:]: 格式指定有效的生命周期阶段或目标.
  • 但是您在上面发布的错误表明它发生在 mvn clean install 步骤的步骤 2/3 上。我不明白你的图像是成功构建的。
猜你喜欢
  • 2016-05-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2020-08-13
  • 2016-06-17
  • 1970-01-01
相关资源
最近更新 更多