#!/bin/bash # # 将 Dockerfile 所需的基础镜像推送到内网 Harbor # 在能访问外网的机器上执行此脚本 # HARBOR="192.168.195.25:19900" declare -A IMAGES=( ["mcr.microsoft.com/dotnet/aspnet:8.0.12"]="library/dotnet/aspnet:8.0.12" ["mcr.microsoft.com/dotnet/sdk:8.0"]="library/dotnet/sdk:8.0" ["mcr.microsoft.com/dotnet/sdk:8.0.412"]="library/dotnet/sdk:8.0.412" ["node:20-alpine"]="library/node:20-alpine" ["nginx:alpine"]="library/nginx:alpine" ) echo "=== 登录 Harbor ===" docker login "$HARBOR" for SRC in "${!IMAGES[@]}"; do DST="${HARBOR}/${IMAGES[$SRC]}" echo "" echo "--- 处理: $SRC → $DST ---" docker pull "$SRC" docker tag "$SRC" "$DST" docker push "$DST" echo "--- 完成: $DST ---" done echo "" echo "=== 所有基础镜像已推送完毕 ==="