1350
This commit is contained in:
1 parent
8f1fffe141
commit
f9076df6e8
4 files changed
+164
-1
No files matched your search
@@ -0,0 +1,103 @@
|
||||
#!/bin/bash
|
||||
# Write Server Docker 一键部署脚本
|
||||
# 用法: ./deploy.sh 或 cd /hugo && bash write-server/deploy.sh
|
||||
|
||||
set -e
|
||||
|
||||
# 颜色定义
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
echo ""
|
||||
echo "==================================="
|
||||
echo " Write Server 自动部署"
|
||||
echo "==================================="
|
||||
echo ""
|
||||
|
||||
# 检测脚本所在目录
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
# 1. 检查是否有更新
|
||||
echo -e "${YELLOW}[1/5]${NC} 检查代码更新..."
|
||||
CHANGES_BEFORE=$(git rev-parse HEAD)
|
||||
git pull origin main
|
||||
CHANGES_AFTER=$(git rev-parse HEAD)
|
||||
|
||||
if [ "$CHANGES_BEFORE" = "$CHANGES_AFTER" ]; then
|
||||
echo -e "${GREEN}✓${NC} 代码已是最新,无需重新构建"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}✓${NC} 检测到新代码,开始构建..."
|
||||
|
||||
# 2. 停止旧容器
|
||||
echo ""
|
||||
echo -e "${YELLOW}[2/5]${NC} 停止旧容器..."
|
||||
docker compose down
|
||||
echo -e "${GREEN}✓${NC} 旧容器已停止"
|
||||
|
||||
# 3. 重新构建
|
||||
echo ""
|
||||
echo -e "${YELLOW}[3/5]${NC} 重新构建镜像..."
|
||||
docker compose build --no-cache
|
||||
echo -e "${GREEN}✓${NC} 镜像构建完成"
|
||||
|
||||
# 4. 启动新容器
|
||||
echo ""
|
||||
echo -e "${YELLOW}[4/5]${NC} 启动新容器..."
|
||||
docker compose up -d
|
||||
echo -e "${GREEN}✓${NC} 容器已启动"
|
||||
|
||||
# 5. 等待服务就绪
|
||||
echo ""
|
||||
echo -e "${YELLOW}[5/5]${NC} 等待服务就绪..."
|
||||
sleep 5
|
||||
|
||||
# 健康检查
|
||||
echo ""
|
||||
echo "==================================="
|
||||
echo " 检查服务状态"
|
||||
echo "==================================="
|
||||
echo ""
|
||||
|
||||
# 检查容器状态
|
||||
if docker compose ps | grep -q "Up"; then
|
||||
echo -e "${GREEN}✓${NC} 容器运行正常"
|
||||
else
|
||||
echo -e "${RED}✗${NC} 容器启动失败"
|
||||
echo ""
|
||||
echo "查看日志:"
|
||||
echo " docker compose logs -f"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查 Bot 启动日志
|
||||
echo ""
|
||||
echo "检查 Bot 启动状态..."
|
||||
sleep 3
|
||||
if docker compose logs --tail 20 2>&1 | grep -q "\[bot\]"; then
|
||||
echo -e "${GREEN}✓${NC} Telegram Bot 已启动"
|
||||
else
|
||||
echo -e "${YELLOW}⚠${NC} 未检测到 Bot 启动日志(可能需要检查配置)"
|
||||
fi
|
||||
|
||||
# 检查 comment notifier
|
||||
if docker compose logs --tail 20 2>&1 | grep -q "\[comment-notify\]"; then
|
||||
echo -e "${GREEN}✓${NC} 评论通知已启动"
|
||||
else
|
||||
echo -e "${YELLOW}⚠${NC} 未检测到评论通知日志"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "==================================="
|
||||
echo -e " ${GREEN}部署完成!${NC}"
|
||||
echo "==================================="
|
||||
echo ""
|
||||
echo "常用命令:"
|
||||
echo " 查看日志: docker compose logs -f"
|
||||
echo " 重启服务: docker compose restart"
|
||||
echo " 停止服务: docker compose down"
|
||||
echo ""
|
||||
Reference in new issue
Block a user