You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

75 lines
1.9 KiB

#!/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 ""