初始化2
This commit is contained in:
278
public/docs/docker.md
Normal file
278
public/docs/docker.md
Normal file
@@ -0,0 +1,278 @@
|
||||
# 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服务) │
|
||||
└────────┘ └──────────┘ └────────┘
|
||||
```
|
||||
|
||||
## 📁 目录结构
|
||||
|
||||
```
|
||||
websopy-deploy/
|
||||
├── docker-compose.yml # 服务编排文件
|
||||
├── .env # 环境变量
|
||||
├── nginx/
|
||||
│ └── conf.d/ # Nginx 配置
|
||||
├── postgres/
|
||||
│ └── init.sql # 数据库初始化脚本
|
||||
└── backups/ # 备份目录
|
||||
```
|
||||
|
||||
## 🔧 常用命令
|
||||
|
||||
### 启动与停止
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
## 🔄 常用配置
|
||||
|
||||
### 调整资源
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
services:
|
||||
api:
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 4G
|
||||
|
||||
worker:
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '4'
|
||||
memory: 8G
|
||||
```
|
||||
|
||||
### 自定义端口
|
||||
|
||||
```yaml
|
||||
services:
|
||||
nginx:
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
# 改成本地其他端口
|
||||
# - "8080:80"
|
||||
```
|
||||
|
||||
### 启用 HTTPS
|
||||
|
||||
```bash
|
||||
# 复制 SSL 证书
|
||||
mkdir -p nginx/ssl
|
||||
cp your-cert.crt nginx/ssl/cert.pem
|
||||
cp your-cert.key nginx/ssl/key.pem
|
||||
|
||||
# 编辑 nginx 配置
|
||||
nano nginx/conf.d/default.conf
|
||||
```
|
||||
|
||||
## 🐛 故障排查
|
||||
|
||||
### 服务无法启动
|
||||
|
||||
```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"
|
||||
```
|
||||
|
||||
### 前端无法访问
|
||||
|
||||
```bash
|
||||
# 1. 检查 nginx 日志
|
||||
docker-compose logs nginx
|
||||
|
||||
# 2. 检查 web 容器
|
||||
docker-compose logs web
|
||||
|
||||
# 3. 重建前端
|
||||
docker-compose up -d --force-recreate web
|
||||
```
|
||||
|
||||
## 🧹 清理
|
||||
|
||||
```bash
|
||||
# 停止并删除容器
|
||||
docker-compose down
|
||||
|
||||
# 删除数据卷(谨慎!)
|
||||
docker-compose down -v
|
||||
|
||||
# 完全清理
|
||||
docker system prune -a
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**上一步:** [AI 工作流配置](./workflow.md)
|
||||
**下一步:** [版本升级与回滚](./upgrade.md)
|
||||
Reference in New Issue
Block a user