2025-08-02 14:48:43 +08:00
|
|
|
|
# ---------- builder ----------
|
2025-07-31 17:02:17 +08:00
|
|
|
|
FROM maven:3.8.7-eclipse-temurin-17-alpine AS builder
|
|
|
|
|
WORKDIR /workspace
|
|
|
|
|
|
2025-08-02 14:48:43 +08:00
|
|
|
|
# 如没有私服,可删掉
|
2025-07-31 17:02:17 +08:00
|
|
|
|
COPY .mvn/settings.xml /root/.m2/settings.xml
|
|
|
|
|
|
2025-08-02 14:48:43 +08:00
|
|
|
|
# 先拉依赖
|
2025-07-31 17:02:17 +08:00
|
|
|
|
COPY pom.xml .
|
|
|
|
|
RUN mvn -B dependency:go-offline
|
|
|
|
|
|
2025-08-02 14:48:43 +08:00
|
|
|
|
# 打包
|
2025-07-31 17:02:17 +08:00
|
|
|
|
COPY src src
|
|
|
|
|
RUN mvn -B clean package spring-boot:repackage -DskipTests
|
|
|
|
|
|
|
|
|
|
|
2025-08-02 14:48:43 +08:00
|
|
|
|
# ---------- runtime ----------
|
|
|
|
|
# 继续用 slim,体积小;手动装字体
|
|
|
|
|
FROM openjdk:17-jdk-slim AS runtime
|
|
|
|
|
ENV TZ=Asia/Shanghai \
|
|
|
|
|
LANG=C.UTF-8 \
|
|
|
|
|
LANGUAGE=C.UTF-8
|
|
|
|
|
|
|
|
|
|
# 换国内源,解决 timeout
|
|
|
|
|
RUN sed -i 's@deb.debian.org@mirrors.tuna.tsinghua.edu.cn@g' /etc/apt/sources.list
|
|
|
|
|
|
|
|
|
|
# 安装 fontconfig + 基础西文 + CJK 字体
|
|
|
|
|
RUN set -eux; \
|
|
|
|
|
apt-get update; \
|
|
|
|
|
apt-get install -y --no-install-recommends \
|
|
|
|
|
fontconfig fonts-dejavu-core fonts-noto-cjk; \
|
|
|
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
|
|
|
|
# 设置时区
|
|
|
|
|
RUN ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone
|
|
|
|
|
|
2025-07-31 17:02:17 +08:00
|
|
|
|
ARG JAR_FILE=smile-picture-backend.jar
|
|
|
|
|
COPY --from=builder /workspace/target/${JAR_FILE} /app.jar
|
|
|
|
|
|
|
|
|
|
EXPOSE 8096
|
|
|
|
|
ENTRYPOINT ["java", "-jar", "/app.jar"]
|