Files
offerpai_backend/client-api/Dockerfile
T
2026-05-21 18:06:19 +08:00

48 lines
1.4 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# syntax=docker/dockerfile:1
# ==================== 第一阶段:编译 ====================
FROM maven:3.8-openjdk-17 AS builder
WORKDIR /build
# 阿里云 Maven 镜像加速
COPY settings.xml /root/.m2/settings.xml
# 先拷贝 pom 利用 Docker 缓存层(依赖不变时跳过下载)
COPY pom.xml .
COPY common/pom.xml common/pom.xml
COPY manager/pom.xml manager/pom.xml
COPY client-api/pom.xml client-api/pom.xml
# 拷贝源码
COPY . .
# 构建(从父 pom 编译,client-api 依赖 common 和 manager
RUN --mount=type=cache,target=/root/.m2/repository \
mvn clean package -pl client-api -am -DskipTests
# ==================== 第二阶段:运行 ====================
FROM alibabadragonwell/dragonwell:17-anolis
ENV TZ=Asia/Shanghai
ENV PROFILES_ACTIVE=prod
ENV JAVA_OPTS="-XX:MaxRAMPercentage=75.0 \
-XX:+UseG1GC \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/app/logs/heapdump.hprof \
-Dfile.encoding=UTF-8 \
-Duser.timezone=Asia/Shanghai"
# 时区 + curl(健康检查用)
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
&& yum install -y curl && yum clean all
RUN mkdir -p /app/logs
WORKDIR /app
EXPOSE 8080
COPY --from=builder /build/client-api/target/client-api.jar ./client-api.jar
CMD java $JAVA_OPTS -jar client-api.jar