From c809542f1f4cb0c2f6af530a75ce23ad99c52433 Mon Sep 17 00:00:00 2001 From: hsc Date: Sun, 30 Mar 2025 17:03:35 +0800 Subject: [PATCH] =?UTF-8?q?feat(devops):=20=E6=B7=BB=E5=8A=A0=20Drone=20CI?= =?UTF-8?q?=20=E5=88=9D=E5=A7=8B=E5=8C=96=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 init_drone.sh 脚本,用于快速部署 Drone CI 环境 - 脚本包含配置、清理、创建 docker-compose 文件、配置 Docker 镜像加速等功能 - 支持 Gitea 集成,Postgres 数据库和 Redis 缓存 - 自动生成 RPC 密钥并输出安装信息 --- devops/init_drone.sh | 120 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 devops/init_drone.sh diff --git a/devops/init_drone.sh b/devops/init_drone.sh new file mode 100644 index 0000000..ca25b27 --- /dev/null +++ b/devops/init_drone.sh @@ -0,0 +1,120 @@ +#!/bin/bash + +# ------------------------------ +# 配置区(根据实际修改) +# ------------------------------ +DRONE_HOST="http://100.78.212.75:4010" # Drone 访问域名 +GITEA_SERVER="http://100.78.212.75:3000" # Gitea 地址 +GITEA_CLIENT_ID="1a1da8e3-7425-4e98-92a2-6c2b7d0819d1" # Gitea OAuth2 Client ID +GITEA_CLIENT_SECRET="gto_axhtqnuj36gvss5dbfx2vem2hcbhxho4jprqrlatjyk2i2ylgeoq" # Gitea OAuth2 Client Secret +POSTGRES_CONN="postgres://postgres:hsc1825713423@100.78.212.75:5432/drone?sslmode=disable" # 数据库连接 +REDIS_ADDR="100.78.212.75:6379" # Redis 地址 +REDIS_PASSWORD="hsc1825713423" # Redis 密码 +INSTALL_DIR="/opt/drone" # 安装目录 + +# 国内镜像代理地址(可根据需要更换) +DOCKER_PROXY="docker.m.daocloud.io" + +# ------------------------------ +# 自动生成密钥 +# ------------------------------ +DRONE_RPC_SECRET=$(openssl rand -hex 16) + +# ------------------------------ +# 清理之前的安装 +# ------------------------------ +echo "🧹 清理之前的 Drone 安装..." +docker-compose down &> /dev/null || true +docker rm -f drone-server &> /dev/null || true +rm -rf "$INSTALL_DIR" +mkdir -p "$INSTALL_DIR" +echo "✅ 已清理之前的安装。" + +# ------------------------------ +# 创建 docker-compose.yml 文件 +# ------------------------------ +echo "📝 创建 docker-compose.yml 文件..." +cat > "$INSTALL_DIR/docker-compose.yml" </dev/null; then + cat > /etc/docker/daemon.json <