# crm-backend 部署镜像(含缩略图 Office 渲染所需的 LibreOffice headless) # 构建阶段:Maven 编译打包 FROM maven:3.9-eclipse-temurin-17 AS build WORKDIR /build COPY pom.xml . COPY crm-base/pom.xml crm-base/ COPY crm-auth/pom.xml crm-auth/ COPY crm-file/pom.xml crm-file/ COPY crm-app/pom.xml crm-app/ # 先拉依赖(利用 Docker 层缓存) RUN mvn dependency:go-offline -q || true COPY . . RUN mvn package -DskipTests -q # 运行阶段:JRE 17 + LibreOffice headless(缩略图 Office 渲染) FROM eclipse-temurin:17-jre # LibreOffice headless 及中文渲染所需字体(--no-install-recommends 控制体积) RUN apt-get update \ && apt-get install -y --no-install-recommends libreoffice fonts-noto-cjk \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=build /build/crm-app/target/crm-app*.jar app.jar ENV JAVA_OPTS="" ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]