From 58f7fb4a444df26f22b1fb662c31bf925115dfde Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Thu, 11 Jun 2026 15:11:43 +0800 Subject: [PATCH] =?UTF-8?q?fix(web):=20=E4=BF=AE=E5=A4=8D=E5=8F=8C?= =?UTF-8?q?=E5=9E=82=E7=9B=B4=E6=BB=9A=E5=8A=A8=E6=9D=A1=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96Docker=E6=9E=84=E5=BB=BA=E7=BC=93=E5=AD=98=E7=AD=96?= =?UTF-8?q?=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - MainLayout: 为侧边栏添加 overflow:hidden,避免 el-aside 默认 overflow:auto 在菜单内容较多时产生第二条垂直滚动条 - Dockerfile.tenant: 将 COPY 源码移至 yarn install 之后并引入 GIT_COMMIT ARG,确保每次提交都重新构建源码层,防止 --cache-from 错误复用旧层导致更新未生效 - Jenkinsfile: 传入 GIT_COMMIT 构建参数;新增 NO_CACHE 参数,缓存 异常时可强制全量重建 Co-Authored-By: Claude Sonnet 4.6 --- Dockerfile.tenant | 7 +++++-- Jenkinsfile | 7 ++++++- tenant-platform/src/views/layout/MainLayout.vue | 1 + 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Dockerfile.tenant b/Dockerfile.tenant index f9634ef..ea33062 100644 --- a/Dockerfile.tenant +++ b/Dockerfile.tenant @@ -4,14 +4,17 @@ WORKDIR /workspace COPY package.json ./package.json COPY yarn.lock ./yarn.lock -COPY tenant-platform ./tenant-platform -COPY docs-site ./docs-site ENV YARN_CACHE_FOLDER=/var/cache/yarn RUN --mount=type=cache,target=/var/cache/yarn,sharing=locked \ yarn install --frozen-lockfile +# GIT_COMMIT invalidates source-code layers on every commit, without re-running yarn install +ARG GIT_COMMIT=unknown +COPY tenant-platform ./tenant-platform +COPY docs-site ./docs-site + ARG TENANT_APP_BASE=/ ARG TENANT_API_BASE_URL=/api diff --git a/Jenkinsfile b/Jenkinsfile index b2f957b..51d3a30 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -5,6 +5,7 @@ pipeline { choice(name: 'APP', choices: ['tenant-platform', 'ops-platform'], description: '要构建的 Web 应用') string(name: 'IMAGE_TAG', defaultValue: 'latest', description: '镜像 Tag') booleanParam(name: 'DEPLOY', defaultValue: true, description: '构建后是否自动部署') + booleanParam(name: 'NO_CACHE', defaultValue: false, description: '禁用 Docker 构建缓存(缓存错误时使用)') } environment { @@ -63,10 +64,14 @@ pipeline { withCredentials([string(credentialsId: 'ACR_PASSWORD', variable: 'ACR_PASS')]) { script { def fullImage = "${env.ACR_REGISTRY}/${env.ACR_NAMESPACE}/${env.IMAGE_NAME}:${params.IMAGE_TAG}" + def cacheArgs = params.NO_CACHE + ? '--no-cache' + : "--build-arg BUILDKIT_INLINE_CACHE=1 --cache-from ${fullImage}" + def gitCommit = env.GIT_COMMIT ?: 'unknown' bat """ docker login ${env.ACR_REGISTRY} -u ${env.ACR_USERNAME} -p %ACR_PASS% docker pull --platform=linux/amd64 ${fullImage} || echo Pull failed, will build fresh - docker build --platform=linux/amd64 -f ${env.DOCKERFILE} ${env.BUILD_ARGS} --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from ${fullImage} -t ${fullImage} . || exit /b %ERRORLEVEL% + docker build --platform=linux/amd64 -f ${env.DOCKERFILE} ${env.BUILD_ARGS} --build-arg GIT_COMMIT=${gitCommit} ${cacheArgs} -t ${fullImage} . || exit /b %ERRORLEVEL% docker push ${fullImage} || exit /b %ERRORLEVEL% docker rmi ${fullImage} || exit 0 """ diff --git a/tenant-platform/src/views/layout/MainLayout.vue b/tenant-platform/src/views/layout/MainLayout.vue index e73fdb1..8de3e99 100644 --- a/tenant-platform/src/views/layout/MainLayout.vue +++ b/tenant-platform/src/views/layout/MainLayout.vue @@ -184,6 +184,7 @@ onBeforeUnmount(() => { background: #1d2129; flex: 0 0 220px; box-shadow: 8px 0 24px rgba(15, 23, 42, 0.08); + overflow: hidden; } .logo { height: 60px;