--- title: Docker Compose 部署 description: 一键部署全套服务(前端+后端+数据库+AI),本地与云端通用。 category: deploy order: 1 --- # Docker Compose 部署 > 一键部署全套服务(前端+后端+数据库+AI),本地与云端通用。 ## 🐳 什么是 Docker Compose? Docker Compose 是一个工具,用于定义和运行多容器 Docker 应用。通过一个 `docker-compose.yml` 文件,你可以一键启动所有相关服务。 ## 📋 前提条件 - Docker 20.10+ - Docker Compose 2.0+ - 至少 4GB 内存 ## 🚀 快速开始 ### 第一步:下载模板 ```bash # 克隆模板仓库 git clone https://github.com/websopy/deploy-templates.git websopy-deploy cd websopy-deploy # 选择版本 git checkout v2.3.0 ``` ### 第二步:配置环境 ```bash # 复制环境变量文件 cp .env.example .env # 编辑配置 nano .env ``` 关键配置: ```env # 版本 WEBSOPY_VERSION=2.3.0 # 数据库 POSTGRES_DB=websopy POSTGRES_USER=websopy POSTGRES_PASSWORD=your-strong-password # Redis REDIS_PASSWORD=your-redis-password # JWT 密钥(生成随机字符串) JWT_SECRET=$(openssl rand -hex 32) # 域名(可选) DOMAIN=your-domain.com ``` ### 第三步:启动服务 ```bash # 一键启动所有服务 docker-compose up -d # 查看服务状态 docker-compose ps # 查看日志 docker-compose logs -f ``` ### 第四步:验证部署 ```bash # 检查服务健康状态 curl http://localhost:3000/api/health # 预期输出 {"status":"ok","version":"2.3.0","services":{"db":"up","redis":"up","ai":"up"}} ``` ## 🏗️ 服务架构 ``` ┌─────────────┐ │ Nginx │ │ (反向代理) │ └──────┬──────┘ │ ┌───────────────┼───────────────┐ │ │ │ ┌────▼────┐ ┌─────▼────┐ ┌────▼────┐ │ Web │ │ API │ │ Worker │ │ (前端) │ │ (后端) │ │ (异步) │ └─────────┘ └─────┬────┘ └─────────┘ │ ┌────────────┼────────────┐ │ │ │ ┌────▼───┐ ┌─────▼────┐ ┌───▼────┐ │Postgres│ │ Redis │ │ AI │ │(数据库) │ │ (缓存) │ │(AI服务) │ └────────┘ └──────────┘ └────────┘ ``` ## 🔧 常用命令 ### 启动与停止 ```bash # 启动所有服务 docker-compose up -d # 停止所有服务 docker-compose down # 重启所有服务 docker-compose restart # 重启指定服务 docker-compose restart api ``` ### 日志查看 ```bash # 查看所有日志 docker-compose logs -f # 查看特定服务日志 docker-compose logs -f api docker-compose logs -f web # 查看最近 100 行 docker-compose logs --tail=100 ``` ### 进入容器 ```bash # 进入 API 容器 docker-compose exec api sh # 进入数据库 docker-compose exec postgres psql -U websopy ``` ## 💾 数据持久化 数据存储在 Docker volumes 中: ```bash # 查看 volumes docker volume ls | grep websopy # 备份数据 docker-compose exec postgres pg_dump -U websopy > backup.sql # 恢复数据 docker exec -i $(docker-compose ps -q postgres) psql -U websopy < backup.sql ``` ## 🐛 故障排查 ### 服务无法启动 ```bash # 1. 检查 Docker 是否运行 docker info # 2. 查看详细日志 docker-compose up # 3. 检查端口占用 lsof -i :80 ``` ### 数据库连接失败 ```bash # 1. 检查 postgres 是否运行 docker-compose ps postgres # 2. 查看数据库日志 docker-compose logs postgres # 3. 测试连接 docker-compose exec postgres psql -U websopy -c "SELECT 1" ```