FROM maven:3-eclipse-temurin-21 AS builder COPY backend/ /opt/gateway # 🚀 优化:使用 BuildKit 缓存 Maven 依赖库 (/root/.m2) # 即使源码变更导致 RUN 命令重新执行,依赖包也会从缓存加载,避免重复下载 RUN --mount=type=cache,target=/root/.m2 \ cd /opt/gateway/ && \ mvn clean package -Dmaven.test.skip=true FROM eclipse-temurin:21-jdk RUN apt-get update && \ apt-get install -y vim wget curl dos2unix && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* COPY --from=builder /opt/gateway/api-gateway/target/gateway.jar /opt/gateway/gateway.jar COPY scripts/images/gateway/start.sh /opt/gateway/start.sh RUN dos2unix /opt/gateway/start.sh \ && chmod +x /opt/gateway/start.sh \ && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime EXPOSE 8080 ENTRYPOINT ["/opt/gateway/start.sh"] CMD ["java", "-Duser.timezone=Asia/Shanghai", "-jar", "/opt/gateway/gateway.jar"]