diff --git a/scripts/build_release_images.sh b/scripts/build_release_images.sh index 498726305..d56881297 100755 --- a/scripts/build_release_images.sh +++ b/scripts/build_release_images.sh @@ -60,6 +60,9 @@ fi # 默认只读不写,防止 feature 分支污染主缓存 # 只有 develop/main 分支才写回缓存 BRANCH_NAME="${GITHUB_REF_NAME:-${CI_COMMIT_BRANCH:-unknown}}" +# 清理本地旧镜像 +docker rmi -f "$API_IMAGE" "$API_LATEST" 2>/dev/null || true + if [ "$USE_CACHE" -eq 1 ]; then docker buildx build \ --build-arg APP_VERSION="$VERSION" \ @@ -89,6 +92,9 @@ build_with_cache() { echo " cache: read-only from ${CACHE_REGISTRY}/${IMG_NAME}-cache:${CACHE_TAG_PRIMARY}" fi + # 清理本地旧镜像,避免 buildx --load 报 already exists 错误 + docker rmi -f "$IMG_NAME:$VERSION" 2>/dev/null || true + if [ "$USE_CACHE" -eq 1 ]; then if [ -n "$CACHE_TO" ]; then docker buildx build \ @@ -119,6 +125,9 @@ build_with_cache "api" "infra/docker/api.Dockerfile" \ docker tag "$API_IMAGE" "$API_LATEST" echo "=== Building Worker image ===" +# 清理本地旧镜像 +docker rmi -f "$WORKER_IMAGE" "$WORKER_LATEST" 2>/dev/null || true + if [ "$USE_CACHE" -eq 1 ]; then docker buildx build \ --build-arg APP_VERSION="$VERSION" \ @@ -148,6 +157,9 @@ docker run --rm \ test -f apps/web/dist/index.html +# 清理本地旧镜像 +docker rmi -f "$WEB_IMAGE" 2>/dev/null || true + if [ "$USE_CACHE" -eq 1 ]; then docker buildx build \ --cache-from "type=registry,ref=${CACHE_REGISTRY}/web-cache:${CACHE_TAG_PRIMARY},ignore-error=true" \