fischer-agentkit/scripts/deploy.sh

37 lines
1000 B
Bash
Executable File

#!/usr/bin/env bash
# 服务器侧部署脚本:构建镜像并滚动更新服务
# 由 Gitea Actions workflow 在 /opt/agentkit/repo 目录下调用
# Usage: bash scripts/deploy.sh
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
COMPOSE_FILE="${COMPOSE_FILE:-docker-compose.deploy.yaml}"
DEPLOY_DIR="${DEPLOY_DIR:-/opt/agentkit}"
cd "$PROJECT_ROOT"
if [ ! -f "$COMPOSE_FILE" ]; then
echo "❌ 未找到 $COMPOSE_FILE"
exit 1
fi
if [ ! -f ".env" ]; then
echo "❌ 未找到 .env 文件,请先通过 Gitea Secrets 生成"
exit 1
fi
echo "==> 部署目录: $PROJECT_ROOT"
echo "==> Compose 文件: $COMPOSE_FILE"
echo "==> 开始构建镜像..."
docker compose -f "$COMPOSE_FILE" build --pull
echo "==> 滚动重启服务(保留数据卷)..."
docker compose -f "$COMPOSE_FILE" up -d --remove-orphans
echo "==> 当前服务状态:"
docker compose -f "$COMPOSE_FILE" ps
echo "==> 部署完成 ✅"