85·语言实践进阶

Java 容器化

Java 容器化

Maven 多阶段构建

FROM maven:3.9-eclipse-temurin-17 AS builder
WORKDIR /app
COPY pom.xml .
RUN mvn dependency:go-offline
COPY src ./src
RUN mvn package -DskipTests

FROM eclipse-temurin:17-jre-alpine
COPY --from=builder /app/target/*.jar /app/app.jar
EXPOSE 8080
CMD ["java", "-jar", "/app/app.jar"]

Gradle 多阶段构建

FROM gradle:8.5-jdk17 AS builder
WORKDIR /app
COPY build.gradle settings.gradle ./
RUN gradle dependencies
COPY src ./src
RUN gradle build --no-daemon

FROM eclipse-temurin:17-jre-alpine
COPY --from=builder /app/build/libs/*.jar /app/app.jar
CMD ["java", "-jar", "/app/app.jar"]

小结

要点说明
基础镜像eclipse-temurin
构建工具Maven / Gradle
多阶段减小镜像

练习编辑器

bash
Loading...