43 lines
1.6 KiB
Docker
43 lines
1.6 KiB
Docker
# 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"]
|