#!/bin/bash # Docker 一键部署脚本 # 使用方法: chmod +x docker-deploy.sh && ./docker-deploy.sh set -e echo "🐳 开始 Docker 部署..." # 颜色定义 GREEN='\033[0;32m' BLUE='\033[0;34m' RED='\033[0;31m' NC='\033[0m' # 1. 检查 Docker echo -e "${BLUE}📦 检查 Docker...${NC}" if ! command -v docker &> /dev/null; then echo -e "${RED}❌ Docker 未安装${NC}" echo "请访问 https://docs.docker.com/get-docker/ 安装 Docker" exit 1 fi echo -e "${GREEN}✅ Docker 版本: $(docker --version)${NC}" # 2. 检查 Docker Compose echo -e "${BLUE}📦 检查 Docker Compose...${NC}" if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then echo -e "${RED}❌ Docker Compose 未安装${NC}" exit 1 fi echo -e "${GREEN}✅ Docker Compose 已安装${NC}" # 3. 创建环境配置 echo -e "${BLUE}⚙️ 创建环境配置...${NC}" if [ ! -f .env ]; then JWT_SECRET=$(openssl rand -base64 32) cat > .env << EOF JWT_SECRET=$JWT_SECRET FRONTEND_URL=http://localhost:5500 EOF echo -e "${GREEN}✅ 已创建 .env${NC}" else echo -e "${GREEN}✅ .env 已存在${NC}" fi # 4. 构建和启动容器 echo -e "${BLUE}🔨 构建和启动容器...${NC}" docker-compose down docker-compose build --no-cache docker-compose up -d # 5. 等待服务启动 echo -e "${BLUE}⏳ 等待服务启动...${NC}" sleep 5 # 6. 显示容器状态 echo -e "${GREEN}✅ 部署完成!${NC}" echo "" echo "📊 容器状态:" docker-compose ps echo "" echo -e "${GREEN}🎉 部署成功!${NC}" echo "" echo "访问地址:" echo " - 前端: http://localhost:5500" echo " - 后端: http://localhost:3000" echo "" echo "常用命令:" echo " docker-compose ps # 查看容器状态" echo " docker-compose logs -f # 查看日志" echo " docker-compose restart # 重启服务" echo " docker-compose down # 停止服务" echo ""