fix(ci): Docker 构建优化 — 修复 Maven 安装超时、启用 BuildKit、优化层缓存
- Dockerfile.deps/template: 改用阿里云镜像手动安装 Maven,避免 apk maven 拉入冗余 openjdk25(600MB+)导致构建超时 - Jenkinsfile: 添加 DOCKER_BUILDKIT=1,使层缓存真正生效 - Dockerfile.deps: framework/dependencies 源码在 COPY . . 前单独复制并预编译, 提升缓存命中率;mvn install 去掉 || true,编译失败立即报错 - .dockerignore: 补充 .git/、docs/、sql/、scripts/ 等目录,构建上下文从 60MB 降至 ~5MB Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5,8 +5,12 @@
|
||||
|
||||
FROM eclipse-temurin:17-jdk-alpine
|
||||
|
||||
# 安装 Maven
|
||||
RUN apk add --no-cache maven
|
||||
# 安装 Maven(从阿里云镜像下载,避免 apk maven 包拉入冗余 JDK)
|
||||
ARG MAVEN_VERSION=3.9.9
|
||||
RUN wget -q https://mirrors.aliyun.com/apache/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz -O /tmp/maven.tar.gz \
|
||||
&& tar xzf /tmp/maven.tar.gz -C /opt \
|
||||
&& ln -s /opt/apache-maven-${MAVEN_VERSION}/bin/mvn /usr/bin/mvn \
|
||||
&& rm /tmp/maven.tar.gz
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
@@ -36,11 +40,13 @@ COPY viewsh-module-ops/viewsh-module-facilities-biz/pom.xml viewsh-module-ops/vi
|
||||
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
|
||||
|
||||
# 复制源代码
|
||||
COPY . .
|
||||
# 先单独复制 framework 和 dependencies 源码并预编译(变动频率低,缓存命中率高)
|
||||
COPY viewsh-dependencies/ viewsh-dependencies/
|
||||
COPY viewsh-framework/ viewsh-framework/
|
||||
RUN mvn install -pl viewsh-dependencies,viewsh-framework -am -DskipTests -B -q
|
||||
|
||||
# 预编译 framework 和 dependencies(所有服务共享)
|
||||
RUN mvn install -pl viewsh-dependencies,viewsh-framework -am -DskipTests -B -q || true
|
||||
# 最后复制全部源码(此层之后的缓存会随源码变动而失效)
|
||||
COPY . .
|
||||
|
||||
Reference in New Issue
Block a user