fix(web): 修复双垂直滚动条并优化Docker构建缓存策略
- 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 <noreply@anthropic.com>
这个提交包含在:
父节点
90c9705ff1
当前提交
58f7fb4a44
@ -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
|
||||
|
||||
|
||||
7
Jenkinsfile
vendored
7
Jenkinsfile
vendored
@ -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
|
||||
"""
|
||||
|
||||
@ -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;
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户