# crm-backend 部署镜像(含缩略图 Office 渲染所需的 LibreOffice headless) # 构建阶段:Maven 编译打包 FROM maven:3.9-eclipse-temurin-17 AS build WORKDIR /build # 阿里云 Maven 镜像,避免公网中央仓拉依赖慢/超时 COPY settings.xml /root/.m2/settings.xml 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-dict/pom.xml crm-dict/ COPY crm-app/pom.xml crm-app/ # 先拉依赖(利用 Docker 层缓存)。不加 || true,拉失败直接报错,不掩盖问题 RUN mvn dependency:go-offline -B COPY . . RUN mvn package -DskipTests -B # 运行阶段: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"]