Dockerfile 1.1 KB

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