From 5b042fd671eb45caaa65d99a3fbd6a13ac36da81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=88=BD=E5=93=92=E5=93=92?= Date: Sat, 21 Mar 2026 00:23:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8C=96=E9=83=A8=E7=BD=B2=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E9=81=BF=E5=85=8Dsudo=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/deploy.yaml | 41 ++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 13f8267..de9ebf6 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -11,42 +11,48 @@ jobs: host: 6.6.6.66 username: quant password: 123quant-speed - envs: SUDO_PASSWORD - envs_passwd: SUDO_PASSWORD - script: | + command: | TARGET_DIR="/home/quant/scoring-system" REPO_URL="https://gitea.tangledup-ai.com/quant-speed-AI/Scoring-System.git" BRANCH="main" - SUDO_PASSWORD="123quant-speed" - # 配置 sudo 免密 - echo "quant ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/quant + # 1. 检查用户是否在 docker 组 + echo "===== 检查 docker 权限 =====" + if groups | grep -q docker; then + echo "用户已在 docker 组" + DOCKER_CMD="docker" + else + echo "用户不在 docker 组,使用 sudo" + DOCKER_CMD="sudo docker" + fi - # 1. 创建目标目录 + # 2. 创建目标目录并设置权限 echo "===== 创建目标目录: $TARGET_DIR =====" - sudo mkdir -p $TARGET_DIR - sudo chown -R quant:quant $TARGET_DIR + mkdir -p $TARGET_DIR - # 2. 检查是否是 git 仓库 + # 3. 检查是否是 git 仓库 echo "===== 检查 git 仓库 =====" cd $TARGET_DIR if [ ! -d ".git" ]; then echo "目录不是 git 仓库,将进行克隆..." rm -rf $TARGET_DIR/* - git clone -b $BRANCH $REPO_URL $TARGET_DIR + GIT_TERMINAL_PROMPT=0 git clone -b $BRANCH $REPO_URL $TARGET_DIR 2>&1 || { + echo "Git clone 失败,尝试直接下载..." + exit 1 + } else echo "已是 git 仓库,执行 pull..." git pull origin $BRANCH fi - # 3. 停止并移除 Docker 容器 + # 4. 停止并移除 Docker 容器 echo -e "\n===== 停止并清理 Docker =====" cd $TARGET_DIR - sudo -n docker compose down 2>/dev/null || true + $DOCKER_CMD compose down 2>/dev/null || true - # 4. 创建/更新 .env 文件 + # 5. 创建/更新 .env 文件 echo -e "\n===== 配置环境变量 =====" - sudo mkdir -p $TARGET_DIR/backend + mkdir -p $TARGET_DIR/backend cat > $TARGET_DIR/backend/.env <<'EOF' # Database Configuration DB_NAME=scoring @@ -65,9 +71,8 @@ jobs: DASHSCOPE_API_KEY=sk-84e9eef24a274f568d4fa15c97556c9f EOF - # 5. 重新启动 Docker 容器 + # 6. 重新启动 Docker 容器 echo -e "\n===== 启动 Docker 容器 =====" - cd $TARGET_DIR - sudo -n docker compose up -d --build + $DOCKER_CMD compose up -d --build echo -e "\n===== 操作完成!====="