All checks were successful
continuous-integration/drone/push Build is passing
- Dockerfile基础镜像切换到内网Harbor (192.168.195.25:19900) - .drone.yml registry从外网域名改为内网Harbor - Admin Dockerfile增加前端构建阶段(多阶段构建) - 新增基础镜像推送脚本 (push-base-images.ps1/sh) - 更新CI-CD部署文档
63 lines
1.6 KiB
Bash
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 "=========================================="
|