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;