Files
aiot-platform-cloud/docker/Dockerfile.deps
lzh 14c239054f
Some checks failed
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
fix(ci): Dockerfile 改用官方 maven 镜像,修复 aliyun 下架 3.9.14 导致 404
- 根因:aliyun 镜像站只保留 Maven 最新小版本,3.9.14 被下架
  之前依赖 Docker 层缓存掩盖,最近清理本地镜像后暴露
- 方案:Dockerfile.deps / Dockerfile.template 均切到
  maven:3.9-eclipse-temurin-17 官方镜像,删除自建 wget/tar/ln 逻辑
- 运行阶段仍用 eclipse-temurin:17-jre-alpine,Prod 镜像体积不变

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 13:55:25 +08:00

46 lines
2.7 KiB
Docker

# ============================================
# Maven 依赖基础镜像
# 预下载所有依赖,供服务构建时复用
# ============================================
FROM maven:3.9-eclipse-temurin-17
WORKDIR /build
# 复制所有 pom 文件
COPY pom.xml .
COPY viewsh-dependencies/pom.xml viewsh-dependencies/
COPY viewsh-framework/pom.xml viewsh-framework/
COPY viewsh-gateway/pom.xml viewsh-gateway/
COPY viewsh-server/pom.xml viewsh-server/
COPY viewsh-module-system/pom.xml viewsh-module-system/
COPY viewsh-module-system/viewsh-module-system-api/pom.xml viewsh-module-system/viewsh-module-system-api/
COPY viewsh-module-system/viewsh-module-system-server/pom.xml viewsh-module-system/viewsh-module-system-server/
COPY viewsh-module-infra/pom.xml viewsh-module-infra/
COPY viewsh-module-infra/viewsh-module-infra-api/pom.xml viewsh-module-infra/viewsh-module-infra-api/
COPY viewsh-module-infra/viewsh-module-infra-server/pom.xml viewsh-module-infra/viewsh-module-infra-server/
COPY viewsh-module-iot/pom.xml viewsh-module-iot/
COPY viewsh-module-iot/viewsh-module-iot-core/pom.xml viewsh-module-iot/viewsh-module-iot-core/
COPY viewsh-module-iot/viewsh-module-iot-api/pom.xml viewsh-module-iot/viewsh-module-iot-api/
COPY viewsh-module-iot/viewsh-module-iot-server/pom.xml viewsh-module-iot/viewsh-module-iot-server/
COPY viewsh-module-iot/viewsh-module-iot-gateway/pom.xml viewsh-module-iot/viewsh-module-iot-gateway/
COPY viewsh-module-ops/pom.xml viewsh-module-ops/
COPY viewsh-module-ops/viewsh-module-ops-api/pom.xml viewsh-module-ops/viewsh-module-ops-api/
COPY viewsh-module-ops/viewsh-module-ops-biz/pom.xml viewsh-module-ops/viewsh-module-ops-biz/
COPY viewsh-module-ops/viewsh-module-environment-biz/pom.xml viewsh-module-ops/viewsh-module-environment-biz/
COPY viewsh-module-ops/viewsh-module-security-biz/pom.xml viewsh-module-ops/viewsh-module-security-biz/
COPY viewsh-module-ops/viewsh-module-facilities-biz/pom.xml viewsh-module-ops/viewsh-module-facilities-biz/
COPY viewsh-module-ops/viewsh-module-service-biz/pom.xml viewsh-module-ops/viewsh-module-service-biz/
COPY viewsh-module-ops/viewsh-module-ops-server/pom.xml viewsh-module-ops/viewsh-module-ops-server/
# 下载所有依赖到本地仓库(部分依赖可能无法离线解析,允许失败)
RUN mvn dependency:go-offline -B || true
# 先单独复制 framework 和 dependencies 源码并预编译(变动频率低,缓存命中率高)
COPY viewsh-dependencies/ viewsh-dependencies/
COPY viewsh-framework/ viewsh-framework/
RUN mvn install -pl viewsh-dependencies,viewsh-framework -am -DskipTests -B -q
# 最后复制全部源码(此层之后的缓存会随源码变动而失效)
COPY . .