跳过正文
  1. 全部文章/

Dockerfile编译java到容器运行

目录

每次部署 Java 项目都要在服务器上装 JDK、配环境变量,烦得要死。 直接用多阶段构建,编译和运行分开,最终镜像只带个 JRE 就完事了。体积小、干净利落。

这里用的是 Maven + Zulu JDK 21 的组合,基本上拿来改改就能用。

Dockerfile
#

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
FROM maven:3.9-eclipse-temurin-21-alpine as build
WORKDIR /app
COPY pom.xml .
COPY src ./src
# 构建应用
RUN mvn clean package -T 16 -DskipTests

FROM azul/zulu-openjdk:21-jre-latest as final
WORKDIR /app
COPY --from=build /app/target/*.jar app.jar
EXPOSE 8080
ENV RunEnv=PROD
ENTRYPOINT ["java","-jar","app.jar"]

说明
#

  • 第一阶段用 maven:3.9-eclipse-temurin-21-alpine 做编译,-T 16 是并行编译线程数,按自己机器来调
  • 第二阶段只用 JRE 跑,不带编译工具,镜像体积小很多
  • RunEnv=PROD 是自定义的环境变量,代码里可以拿来判断运行环境

相关文章