42 lines
983 B
Bash
42 lines
983 B
Bash
#!/bin/bash
|
|
# MengStack Demo 一键部署脚本
|
|
# 用法: ./deploy.sh
|
|
|
|
set -e
|
|
|
|
APP_DIR="/www/wwwroot/mengstack-demo"
|
|
SERVICE_NAME="mengstack-demo"
|
|
BINARY_NAME="mengstack-demo"
|
|
GO_PATH="/usr/local/go/bin"
|
|
export GOPROXY=https://goproxy.cn,direct
|
|
|
|
echo "=== MengStack Demo 部署开始 ==="
|
|
|
|
# 1. 拉取最新代码
|
|
echo "[1/4] 拉取最新代码..."
|
|
cd "$APP_DIR"
|
|
git pull origin master
|
|
|
|
# 2. 构建二进制
|
|
echo "[2/4] 构建 Go 二进制..."
|
|
export PATH="$GO_PATH:$PATH"
|
|
go build -o "$BINARY_NAME" ./cmd/server/
|
|
|
|
# 3. 重启服务
|
|
echo "[3/4] 重启服务..."
|
|
systemctl restart "$SERVICE_NAME"
|
|
|
|
# 4. 等待并检查状态
|
|
sleep 3
|
|
echo "[4/4] 检查服务状态..."
|
|
if systemctl is-active --quiet "$SERVICE_NAME"; then
|
|
echo "=== 部署成功 ==="
|
|
echo "服务状态: $(systemctl is-active $SERVICE_NAME)"
|
|
curl -s http://localhost:2223/health | head -c 200
|
|
echo ""
|
|
else
|
|
echo "=== 部署失败 ==="
|
|
journalctl -u "$SERVICE_NAME" --no-pager -n 20
|
|
exit 1
|
|
fi
|