fix: 增加部署超时时间到60分钟,启用 BuildKit 缓存加速构建

This commit is contained in:
爽哒哒
2026-03-19 01:43:51 +08:00
parent 636ac24e70
commit b66859498f
2 changed files with 89 additions and 2 deletions

View File

@@ -0,0 +1,86 @@
name: Deploy to Server
on: [push]
jobs:
deploy:
runs-on: ubuntu
timeout-minutes: 60
steps:
- name: Deploy using SSH
# 使用 Gitea 官方镜像源,加速国内访问
uses: https://gitea.com/actions/appleboy-ssh-action@v1.0.3
with:
host: 6.6.6.66
username: quant
password: 123quant-speed
command_timeout: 50m
script: |
TARGET_DIR="/home/quant/data/dev/sign-up"
SUDO_PASSWORD="123quant-speed"
REPO_URL="https://gitea.tangledup-ai.com/quant-speed-AI/Scoring-System.git"
# 1. 检查目录是否存在,不存在则创建并克隆
echo "===== 检查目标目录: $TARGET_DIR ====="
if [ ! -d "$TARGET_DIR" ]; then
echo "目录不存在,创建目录并克隆仓库..."
mkdir -p $TARGET_DIR
git clone $REPO_URL $TARGET_DIR
fi
# 2. 切换到目标目录
echo "===== 切换到目标目录: $TARGET_DIR ====="
cd $TARGET_DIR || {
echo "错误:目录 $TARGET_DIR 不存在!"
exit 1
}
# 3. 停止并移除 Docker 容器及镜像
echo -e "\n===== 停止并清理 Docker ====="
# 强制停止并删除容器,忽略错误
echo $SUDO_PASSWORD | sudo -S docker compose down --remove-orphans 2>/dev/null || true
# 等待容器完全停止
sleep 5
# 清理本项目残留容器(避免影响其他项目)
echo $SUDO_PASSWORD | sudo -S docker ps -aq --filter "name=cywl-scoring" | xargs -r docker rm -f 2>/dev/null || true
# 4. 拉取 Git 最新代码
echo -e "\n===== 拉取 Git 代码 ====="
# 尝试拉取,如果失败则强制重置,增强鲁棒性
if ! git pull; then
echo "警告Git pull 失败,尝试强制同步远程代码..."
git fetch --all
# 获取当前分支名并重置
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
git reset --hard origin/$CURRENT_BRANCH
git pull
fi
# 5. 创建/更新 .env 文件 (从本地环境变量注入)
echo -e "\n===== 配置环境变量 ====="
cat > backend/.env <<EOF
# Aliyun OSS Configuration
ALIYUN_ACCESS_KEY_ID=LTAI5tE62GW8MKyoEaotzxXk
ALIYUN_ACCESS_KEY_SECRET=Zdzqo1fgj57DxxioXOotNKhJdSfVQW
ALIYUN_OSS_ENDPOINT=https://oss-cn-shanghai.aliyuncs.com
ALIYUN_OSS_BUCKET_NAME=tangledup-ai-staging
ALIYUN_OSS_INTERNAL_ENDPOINT=https://oss-cn-shanghai-internal.aliyuncs.com
# Aliyun Tingwu Configuration
ALIYUN_TINGWU_APP_KEY=6eOX7N3tKE0fDwb
DASHSCOPE_API_KEY=sk-84e9eef24a274f568d4fa15c97556c9f
EOF
# 6. 重新启动 Docker 容器(使用 BuildKit 加速构建)
echo -e "\n===== 启动 Docker 容器 ====="
export DOCKER_BUILDKIT=1
export COMPOSE_DOCKER_CLI_BUILD=1
echo $SUDO_PASSWORD | sudo -S -E docker compose up -d --build
# 7. 等待服务启动
echo -e "\n===== 等待服务启动 ====="
sleep 15
# 8. 检查服务状态
echo -e "\n===== 检查服务状态 ====="
echo $SUDO_PASSWORD | sudo -S docker compose ps
echo -e "\n===== 操作完成!====="

View File

@@ -7,9 +7,10 @@ RUN apk add --no-cache autoconf automake libtool make g++ zlib-dev nasm python3
# 设置工作目录 # 设置工作目录
WORKDIR /app WORKDIR /app
# 安装依赖 # 安装依赖(使用缓存层)
COPY package.json package-lock.json* ./ COPY package.json package-lock.json* ./
RUN npm install --registry=https://registry.npmmirror.com RUN --mount=type=cache,target=/root/.npm \
npm install --registry=https://registry.npmmirror.com --prefer-offline
# 复制项目文件 # 复制项目文件
COPY . . COPY . .