You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

25 lines
929 B

# 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"]