| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- # ============ Stage 1: Maven Build ============
- FROM maven:3.9-eclipse-temurin-21 AS builder
- WORKDIR /build
- COPY pom.xml .
- RUN mvn dependency:go-offline -B
- COPY src ./src
- RUN mvn clean package -DskipTests -B
- # ============ Stage 2: Runtime ============
- FROM eclipse-temurin:21-jre
- LABEL maintainer="chenyu"
- ENV TZ=Asia/Shanghai
- ENV JAVA_OPTS="-XX:MaxRAMPercentage=75.0 \
- -XX:+UseContainerSupport \
- -XX:+HeapDumpOnOutOfMemoryError \
- -XX:HeapDumpPath=/app/logs/heapdump.hprof"
- RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
- && apt-get update \
- && apt-get install -y --no-install-recommends ffmpeg \
- && rm -rf /var/lib/apt/lists/*
- WORKDIR /app
- RUN mkdir -p /app/logs \
- && chown -R 1000:1000 /app
- COPY --from=builder /build/target/*.jar /app/app.jar
- RUN chown 1000:1000 /app/app.jar
- USER 1000
- EXPOSE 8080 8090
- ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar --server.address=0.0.0.0"]
|