96 lines
2.2 KiB
Bash
96 lines
2.2 KiB
Bash
#!/bin/bash
|
|
|
|
# 创赢未来报名评分系统 - 生产环境部署脚本
|
|
# 用法: ./deploy.sh [环境变量]
|
|
|
|
set -e
|
|
|
|
# 颜色定义
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# 打印带颜色的信息
|
|
print_info() {
|
|
echo -e "${BLUE}[INFO]${NC} $1"
|
|
}
|
|
|
|
print_success() {
|
|
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
|
}
|
|
|
|
print_warning() {
|
|
echo -e "${YELLOW}[WARNING]${NC} $1"
|
|
}
|
|
|
|
print_error() {
|
|
echo -e "${RED}[ERROR]${NC} $1"
|
|
}
|
|
|
|
# 检查环境
|
|
print_info "检查 Docker 环境..."
|
|
if ! command -v docker &> /dev/null; then
|
|
print_error "Docker 未安装,请先安装 Docker"
|
|
exit 1
|
|
fi
|
|
|
|
if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then
|
|
print_error "Docker Compose 未安装,请先安装 Docker Compose"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查 .env 文件
|
|
if [ ! -f .env ]; then
|
|
print_warning ".env 文件不存在,将使用默认配置"
|
|
print_warning "建议复制 .env.example 为 .env 并修改配置"
|
|
fi
|
|
|
|
# 显示部署信息
|
|
print_info "================================"
|
|
print_info "创赢未来报名评分系统 - 部署脚本"
|
|
print_info "================================"
|
|
|
|
# 拉取最新代码(如果是 git 仓库)
|
|
if [ -d .git ]; then
|
|
print_info "拉取最新代码..."
|
|
git pull || print_warning "Git pull 失败,使用本地代码继续"
|
|
fi
|
|
|
|
# 停止旧容器
|
|
print_info "停止旧容器..."
|
|
docker-compose down --remove-orphans
|
|
|
|
# 删除旧镜像(可选)
|
|
print_info "清理旧镜像..."
|
|
docker-compose rm -f
|
|
|
|
# 构建镜像
|
|
print_info "构建 Docker 镜像..."
|
|
docker-compose build --no-cache
|
|
|
|
# 启动服务
|
|
print_info "启动服务..."
|
|
docker-compose up -d
|
|
|
|
# 等待服务启动
|
|
print_info "等待服务启动..."
|
|
sleep 10
|
|
|
|
# 检查服务状态
|
|
print_info "检查服务状态..."
|
|
if docker-compose ps | grep -q "Up"; then
|
|
print_success "服务启动成功!"
|
|
echo ""
|
|
print_info "访问地址:"
|
|
print_success " - 前端: http://localhost"
|
|
print_success " - 后端 API: http://localhost:8000/api/"
|
|
print_success " - 后台管理: http://localhost:8000/admin/"
|
|
echo ""
|
|
print_info "查看日志: docker-compose logs -f"
|
|
else
|
|
print_error "服务启动失败,请检查日志: docker-compose logs"
|
|
exit 1
|
|
fi
|