mi-assessment/scripts/push-base-images.sh
zpc 2b10624c21
All checks were successful
continuous-integration/drone/push Build is passing
chore(ci): 迁移CI/CD到内网Harbor
- Dockerfile基础镜像切换到内网Harbor (192.168.195.25:19900)
- .drone.yml registry从外网域名改为内网Harbor
- Admin Dockerfile增加前端构建阶段(多阶段构建)
- 新增基础镜像推送脚本 (push-base-images.ps1/sh)
- 更新CI-CD部署文档
2026-03-24 15:10:19 +08:00

63 lines
1.6 KiB
Bash

#!/bin/bash
# ============================================================
# 一键推送基础镜像到内网 Harbor
# 在能访问外网的机器上执行
# 用法: bash scripts/push-base-images.sh
# ============================================================
set -e
HARBOR_HOST="192.168.195.25:19900"
HARBOR_PROJECT="library"
# 需要推送的基础镜像映射: "外网镜像|内网路径"
IMAGES=(
"mcr.microsoft.com/dotnet/aspnet:10.0-preview|dotnet/aspnet:10.0-preview"
"mcr.microsoft.com/dotnet/sdk:10.0-preview|dotnet/sdk:10.0-preview"
"node:20-alpine|node:20-alpine"
)
echo "=========================================="
echo " 推送基础镜像到内网 Harbor"
echo " Harbor: ${HARBOR_HOST}"
echo "=========================================="
# 登录 Harbor
echo ""
echo "[登录] Harbor ${HARBOR_HOST}"
docker login "${HARBOR_HOST}"
SUCCESS=0
FAIL=0
for item in "${IMAGES[@]}"; do
SRC="${item%%|*}"
DST="${item##*|}"
TARGET="${HARBOR_HOST}/${HARBOR_PROJECT}/${DST}"
echo ""
echo "------------------------------------------"
echo "[拉取] ${SRC}"
if docker pull "${SRC}"; then
echo "[标签] ${TARGET}"
docker tag "${SRC}" "${TARGET}"
echo "[推送] ${TARGET}"
if docker push "${TARGET}"; then
echo "[完成] ✓ ${DST}"
((SUCCESS++))
else
echo "[失败] ✗ 推送失败: ${DST}"
((FAIL++))
fi
else
echo "[失败] ✗ 拉取失败: ${SRC}"
((FAIL++))
fi
done
echo ""
echo "=========================================="
echo " 完成: 成功 ${SUCCESS}, 失败 ${FAIL}"
echo "=========================================="