| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- # ========== 构建阶段 ==========
- 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"]
|