我需要从 Docker 文件创建 Docker 镜像,以便将我的 Spring Boot 应用程序 Docker 化。但我希望从 Docker 文件内部生成 JAR 文件,而不是通过mvn clean package
用户执行。我尝试了以下代码,但无法生成 JAR 文件:
FROM openjdk:17-jdk-slim
COPY pom.xml pom.xml
COPY src src
RUN mvn clean package
COPY ./target/my-app.jar my-app.jar
ENTRYPOINT ["java","-jar","/my-app.jar"]
要构建 Spring Boot 应用程序并在 Dockerfile 中生成 JAR 文件,建议使用多阶段构建。这种方法允许您在一个阶段编译应用程序,然后在另一个阶段运行它,从而生成更小、更高效的 Docker 镜像。Dockerfile 的构建方法如下:
解释:
建造者阶段:
运行时阶段:
此方法可确保最终的 Docker 镜像仅包含必要的运行时依赖项,从而保持其轻量且高效。