# syntax=docker/dockerfile:1.7 FROM --platform=${BUILDPLATFORM} maven:3.9.9-eclipse-temurin-21 AS builder WORKDIR /build COPY backend/pom.xml ./pom.xml COPY backend/easycard-common/pom.xml ./easycard-common/pom.xml COPY backend/easycard-module-system/pom.xml ./easycard-module-system/pom.xml COPY backend/easycard-module-tenant/pom.xml ./easycard-module-tenant/pom.xml COPY backend/easycard-module-org/pom.xml ./easycard-module-org/pom.xml COPY backend/easycard-module-user/pom.xml ./easycard-module-user/pom.xml COPY backend/easycard-module-card/pom.xml ./easycard-module-card/pom.xml COPY backend/easycard-module-file/pom.xml ./easycard-module-file/pom.xml COPY backend/easycard-module-stat/pom.xml ./easycard-module-stat/pom.xml COPY backend/easycard-boot/pom.xml ./easycard-boot/pom.xml RUN mvn -q -DskipTests dependency:go-offline COPY backend/. . RUN mvn -q -DskipTests -pl easycard-boot -am clean package \ && cp /build/easycard-boot/target/easycard-boot-0.1.0-SNAPSHOT.jar /tmp/app.jar \ && rm -rf /tmp/manifest-check \ && mkdir -p /tmp/manifest-check \ && cd /tmp/manifest-check \ && jar xf /tmp/app.jar META-INF/MANIFEST.MF \ && grep -q "Main-Class: org.springframework.boot.loader.launch.JarLauncher" META-INF/MANIFEST.MF \ && grep -q "Start-Class: com.easycard.boot.EasycardBootApplication" META-INF/MANIFEST.MF FROM --platform=${TARGETPLATFORM} eclipse-temurin:21-jre WORKDIR /app ENV TZ=Asia/Shanghai ENV JAVA_OPTS="" COPY --from=builder /tmp/app.jar /app/app.jar EXPOSE 8112 ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar /app/app.jar"]