Files
bruno 8c3881bf89 🚀 feat: 企业级CI/CD基础设施完整部署方案
✨ 新功能:
- 一键自动化部署脚本 (build-infra.sh)
- 统一端口配置 (3开头端口,避免冲突)
- 多平台Docker构建支持 (AMD64 + ARM64)
- Jenkins Configuration as Code (零手动配置)
- 完整的服务验证和健康检查

🏗️ 核心组件:
- Jenkins LTS + JDK21 (端口38080)
- Gitea 1.21 (端口33000, SSH: 32222)
- Docker Registry + UI (端口35001/35002)
- 统一cicd-network网络

📋 管理工具:
- 自动化部署和验证脚本
- 健康检查和日志管理工具
- 完整的文档和故障排查指南

🎯 已验证功能:
- 所有服务正常启动和运行
- API和Web界面完全可访问
- 多平台构建环境就绪
- 完整的CI/CD流水线支持

适用环境: Mac Studio M2 + Docker Desktop
2025-08-23 22:11:50 +08:00

53 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# Gitea 数据备份脚本
# 使用方法: ./backup-gitea.sh [backup_name]
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
DATA_DIR="${PROJECT_ROOT}/data/gitea"
BACKUP_DIR="${PROJECT_ROOT}/backup/gitea"
# 创建备份目录
mkdir -p "${BACKUP_DIR}"
# 生成备份名称
BACKUP_NAME="${1:-gitea-$(date +%Y%m%d-%H%M%S)}"
BACKUP_PATH="${BACKUP_DIR}/${BACKUP_NAME}"
echo "🔄 开始备份 Gitea 数据..."
echo "📂 源目录: ${DATA_DIR}"
echo "💾 备份到: ${BACKUP_PATH}"
# 停止容器(可选)
read -p "是否停止 Gitea 容器以确保数据一致性? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "⏸️ 停止 Gitea 容器..."
cd "${PROJECT_ROOT}/docker/compose"
docker-compose -f gitea-compose.yml stop gitea
RESTART_CONTAINER=true
fi
# 执行备份
echo "📦 创建备份..."
tar -czf "${BACKUP_PATH}.tar.gz" -C "${PROJECT_ROOT}/data" gitea
# 重启容器(如果之前停止了)
if [[ "${RESTART_CONTAINER}" == "true" ]]; then
echo "🚀 重启 Gitea 容器..."
cd "${PROJECT_ROOT}/docker/compose"
docker-compose -f gitea-compose.yml start gitea
fi
echo "✅ 备份完成: ${BACKUP_PATH}.tar.gz"
echo "📊 备份大小: $(du -h "${BACKUP_PATH}.tar.gz" | cut -f1)"
# 清理旧备份(保留最近5个)
echo "🧹 清理旧备份..."
cd "${BACKUP_DIR}"
ls -t gitea-*.tar.gz 2>/dev/null | tail -n +6 | xargs rm -f 2>/dev/null || true
echo "🎉 备份任务完成!"