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.
 
 
 
 
 

27 lines
1.1 KiB

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