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...