blob: 8a10806fafa562c0dc59b24c8c7001c75a996203 [file] [log] [blame] [view] [raw]
# Docker 部署方式说明
## 📋 两种部署方式
本项目支持两种Docker部署方式,根据你的需求选择:
### 🔹 方式A: 完整系统部署(推荐生产环境)
**特点**:
- 一键启动所有服务(Webhook服务器 + 4Bot
- 自动管理服务依赖
- 统一配置管理
- Bot间消息同步(Webhook
- 共享网络
**使用场景**:
- 生产环境部署
- 需要多bot协同工作
- 需要bot间共享上下文
**配置文件**: `.env` (从 `.env.all.example` 复制)
**Compose文件**: `docker-compose.yml` (项目根目录)
```bash
# 1. 配置环境变量
cp .env.all.example .env
nano .env # 填入所有配置
# 2. 启动所有服务
docker-compose up -d
# 3. 查看状态
docker-compose ps
# 4. 查看日志
docker-compose logs -f tomato-bot
# 5. 停止所有
docker-compose down
```
**服务列表**:
- `webhook-server` - 消息广播服务器 (端口: 30540)
- `tomato-bot` - 西红柿bot (端口: 30541)
- `cyrene-bot` - Cyrene bot (端口: 30542)
- `goldship-bot` - 黄金船bot (端口: 30543)
- `lunatalk-bot` - LunaTalk bot (端口: 30544)
### 🔹 方式B: 独立Bot部署(推荐开发环境)
**特点**:
- 每个bot独立启动/停止
- 灵活的开发测试
- 独立的配置管理
- 资源隔离
- ⚠️ bot间消息同步
**使用场景**:
- 开发环境测试
- 只需要运行部分bot
- Bot独立工作,无需协同
**配置文件**: 每个bot目录的 `.env`
**Compose文件**: 每个bot目录的 `docker-compose.yml`
```bash
# 1. 进入bot目录
cd run/tomato
# 2. 配置环境变量
cp .env.example .env
nano .env # 填入bot配置
# 3. 启动bot
docker-compose up -d
# 4. 查看日志
docker-compose logs -f
# 5. 停止bot
docker-compose down
```
**管理脚本** (可选):
```bash
# 使用便捷脚本管理(从项目根目录)
./docker-bot.sh start tomato # 启动单个bot
./docker-bot.sh stop tomato # 停止单个bot
./docker-bot.sh logs tomato # 查看日志
./docker-bot.sh status # 查看所有bot状态
```
## 🔄 方式对比
| 特性 | 方式A: 完整系统 | 方式B: 独立Bot |
|------|----------------|---------------|
| 启动方式 | `docker-compose up -d` | 每个bot单独启动 |
| 配置文件 | 1个统一的.env | 每个bot独立.env |
| Bot间通信 | 支持(Webhook) | 不支持 |
| 资源管理 | 统一管理 | 独立管理 |
| 适用场景 | 生产环境 | 开发测试 |
| 灵活性 | 中等 | |
| 配置复杂度 | | |
## 🚀 快速决策指南
**选择方式A** 如果你需要:
- 在生产环境运行
- Bot在同一个群组中协同工作
- 统一管理所有bot
- Bot间共享上下文和消息
**选择方式B** 如果你:
- 在开发环境测试
- 只需要运行1-2bot
- Bot独立工作,各管各的
- 需要灵活调试单个bot
## 📝 环境变量说明
### 方式A所需环境变量
参考 `.env.all.example`,包含:
- Webhook服务器配置
- 所有4bot的配置
- 共享配置(如API代理)
### 方式B所需环境变量
参考各bot目录的 `.env.example`,每个bot独立配置:
- ANTHROPIC_API_KEY
- TELEGRAM_BOT_TOKEN
- TELEGRAM_ALLOWED_USERS
- TELEGRAM_ALLOWED_GROUPS
## 🔗 相关文档
- [完整部署指南](docs/DOCKER_DEPLOYMENT.md)
- [Webhook系统说明](docs/WEBHOOK_SYSTEM.md)
- [故障排除](docs/DOCKER_DEPLOYMENT.md#故障排除)
## ❓ 常见问题
**Q: 可以混合使用两种方式吗?**
A: 不建议。选择一种方式并坚持使用,避免网络和配置冲突。
**Q: 方式B可以添加Webhook支持吗?**
A: 可以,需要手动配置webhook服务器和网络。建议直接使用方式A
**Q: 如何从方式B迁移到方式A?**
A:
1. 停止所有独立bot: `docker-compose down` (在各bot目录)
2. 合并配置到 `.env`
3. 使用根目录的 `docker-compose up -d` 启动
**Q: 数据会丢失吗?**
A: Docker Volumes独立存储,迁移时数据不会丢失。
---
**建议**: 生产环境使用方式A,开发环境使用方式B