# ========== 构建阶段 ========== FROM maven:3.8-openjdk-11-slim AS builder WORKDIR /build # 先拷贝 pom.xml 和公共模块,利用 Docker 缓存加速 COPY pom.xml ./ COPY kyl-common/pom.xml kyl-common/ COPY kyl-framework/pom.xml kyl-framework/ COPY kyl-security/pom.xml kyl-security/ COPY kyl-pay/pom.xml kyl-pay/ COPY kyl-service/pom.xml kyl-service/ COPY kyl-web/pom.xml kyl-web/ # 下载依赖(只下载,后续构建可复用缓存层) RUN mvn dependency:go-offline -B || true # 拷贝全部源码 COPY . . # 构建项目,跳过测试 RUN mvn clean package -DskipTests -B # ========== 运行阶段 ========== FROM openjdk:11-jre-slim WORKDIR /app # 从构建阶段复制打好的 jar COPY --from=builder /build/kyl-web/target/*.jar app.jar # 暴露端口 EXPOSE 9995 # 环境变量(建议通过 docker run -e 覆盖,这里只给默认值) ENV SPRING_PROFILES_ACTIVE=dev ENV MYSQL_HOST=192.168.200.128 ENV MYSQL_PORT=3306 ENV MYSQL_USERNAME=root ENV MYSQL_PASSWORD=123456 ENV REDIS_HOST=192.168.200.128 ENV REDIS_PORT=6379 ENV XXL_JOB_ADMIN_ADDRESSES=http://192.168.200.128:8888/xxl-job-admin # 启动 CMD ["java", "-jar", "app.jar"]