Files
macos-tools/harbor/push-basic-images-fixed.sh
gaoandClaude 745aa30d5f feat: 完善云原生 DevOps 工具链和 Harbor 集成
- 更新 Harbor 配置和部署脚本
- 添加 Gitea runner 配置和相关文件
- 完善 Tekton 流水线配置
- 添加 Harbor 镜像推送和管理脚本
- 修复 CI/CD 部署步骤和配置

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
2025-10-28 14:57:30 +08:00

73 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# 重新推送基础镜像到 Harbor library 脚本(使用HTTPS端口)
set -e
HARBOR_DOMAIN="192.168.1.83"
HARBOR_PORT="8443"
HARBOR_USER="admin"
HARBOR_PASSWORD="admin123"
PROJECT_NAME="library"
# 基础镜像列表
IMAGES=(
"nginx:1.24.0"
"nginx:latest"
"busybox:1.36.1"
"redis:7.0.11"
"redis:latest"
"alpine:latest"
"mysql:latest"
"postgres:latest"
"python:3.11-slim"
"node:18-alpine"
"httpd:latest"
"ubuntu:latest"
)
echo "开始推送基础镜像到 Harbor library..."
# 登录Harbor
echo "登录到Harbor..."
echo $HARBOR_PASSWORD | docker login https://$HARBOR_DOMAIN:$HARBOR_PORT -u $HARBOR_USER --password-stdin || {
echo "HTTPS登录失败,创建临时配置..."
mkdir -p /tmp/.docker-harbor
echo '{"insecure-registries":["192.168.1.83:8443"],"insecure-skip-verify": true}' > /tmp/.docker-harbor/daemon.json
DOCKER_CONFIG=/tmp/.docker-harbor
}
for image in "${IMAGES[@]}"; do
echo "处理镜像: $image"
# 检查本地镜像是否存在
if ! docker image inspect "$image" &>/dev/null; then
echo "拉取镜像: $image"
docker pull "$image"
fi
# 标记镜像
harbor_image="$HARBOR_DOMAIN:$HARBOR_PORT/$PROJECT_NAME/$image"
echo "标记镜像: $image -> $harbor_image"
docker tag "$image" "$harbor_image"
# 推送镜像
echo "推送镜像: $harbor_image"
if [ -n "$DOCKER_CONFIG" ]; then
docker --config $DOCKER_CONFIG push "$harbor_image" || {
echo "推送 $image 失败"
}
else
docker push "$harbor_image" || {
echo "推送失败,尝试跳过证书验证..."
docker --config /tmp/.docker-harbor push "$harbor_image" 2>/dev/null || echo "推送 $image 失败"
}
fi
echo "完成: $image"
echo "---"
done
echo "所有基础镜像推送完成!"
echo "请访问 Harbor UI: https://$HARBOR_DOMAIN:$HARBOR_PORT"
echo "用户名: $HARBOR_USER"
echo "密码: $HARBOR_PASSWORD"