- 更新 Harbor 配置和部署脚本 - 添加 Gitea runner 配置和相关文件 - 完善 Tekton 流水线配置 - 添加 Harbor 镜像推送和管理脚本 - 修复 CI/CD 部署步骤和配置 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
73 lines
2.0 KiB
Bash
Executable File
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" |