Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Dockerfile构建Spring Boot应用程序(Maven)?_Java_Spring Boot_Docker_Maven - Fatal编程技术网

Java 如何使用Dockerfile构建Spring Boot应用程序(Maven)?

Java 如何使用Dockerfile构建Spring Boot应用程序(Maven)?,java,spring-boot,docker,maven,Java,Spring Boot,Docker,Maven,我写了一个Hello World Spring启动应用程序。这是一个专业项目 现在我想将此应用程序dockerize。.jar由Docker创建是很重要的 Dockerfile: FROM maven:3.5-jdk-8 AS build WORKDIR /app COPY src . COPY pom.xml . RUN mvn -f pom.xml clean package FROM openjdk:8-alpine COPY --from=build /src/app/target/

我写了一个Hello World Spring启动应用程序。这是一个专业项目


现在我想将此应用程序dockerize。.jar由Docker创建是很重要的

Dockerfile:

FROM maven:3.5-jdk-8 AS build
WORKDIR /app
COPY src .
COPY pom.xml .
RUN mvn -f pom.xml clean package

FROM openjdk:8-alpine
COPY --from=build /src/app/target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]
创造不断失败。 我在Dockerfile里做错了什么? 我从这篇文章中得到了Dockerfile的基本概念。

首先使用Maven构建/清理应用程序,然后.jar文件(或.war)将位于/target目录中 在Dockerfile中添加以下内容:

FROM openjdk:12
ADD target/<jar-name-in-target>.jar docker-spring.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "docker-spring.jar"]
来自openjdk的
:12
添加target/.jar docker-spring.jar
曝光8080
入口点[“java”、“-jar”、“dockerspring.jar”]

然后构建Dockerfile

以下Dockerfile工作正常

# Build stage
FROM maven:3.6.3-jdk-8-slim AS build
COPY src /home/app/src
COPY pom.xml /home/app
RUN mvn -f /home/app/pom.xml clean test package

# Package stage
FROM openjdk:8-jdk-alpine
COPY --from=build /home/app/target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]

由Docker构建.jar文件非常重要,这样我就可以使用GitLab CI/CD了。