108 lines
2.4 KiB
Markdown
108 lines
2.4 KiB
Markdown
# DD Fiber API 部署指南
|
||
|
||
## 📦 部署文件说明
|
||
|
||
```
|
||
deploy/
|
||
├── config.yaml # 生产环境配置文件
|
||
├── storage/ # 证书文件目录(挂载)
|
||
│ └── 1503017331_20251231_cert/
|
||
│ ├── apiclient_key.pem
|
||
│ └── apiclient_cert.pem
|
||
├── deploy.sh # 自动化部署脚本
|
||
└── dd-fiber-api.tar # Docker 镜像文件(通过 make tar 生成)
|
||
```
|
||
|
||
## 🚀 快速部署
|
||
|
||
### 1. 准备部署文件
|
||
|
||
确保以下文件存在:
|
||
- `dd-fiber-api.tar` - Docker 镜像文件
|
||
- `config.yaml` - 生产环境配置文件
|
||
- `storage/` - 证书文件目录
|
||
|
||
### 2. 执行部署脚本
|
||
|
||
```bash
|
||
cd deploy
|
||
./deploy.sh
|
||
```
|
||
|
||
部署脚本会自动:
|
||
- 检查必要文件
|
||
- 停止并删除旧容器
|
||
- 加载 Docker 镜像
|
||
- 启动新容器
|
||
- 挂载配置文件和证书目录
|
||
|
||
## 📋 手动部署
|
||
|
||
如果不想使用部署脚本,可以手动执行:
|
||
|
||
```bash
|
||
# 1. 加载镜像
|
||
docker load -i dd-fiber-api.tar
|
||
|
||
# 2. 运行容器
|
||
docker run -d \
|
||
--name dd-fiber-api \
|
||
--restart=unless-stopped \
|
||
--network dd.net \
|
||
-p 8080:8080 \
|
||
-p 8081:8081 \
|
||
-v $(pwd)/config.yaml:/app/data/config/config.yaml:ro \
|
||
-v $(pwd)/storage:/app/data/storage:ro \
|
||
dd-fiber-api:latest
|
||
```
|
||
|
||
## 🔧 配置说明
|
||
|
||
### 端口映射
|
||
|
||
- `8080` - Admin 管理端端口
|
||
- `8081` - API 小程序接口端口
|
||
|
||
### 挂载目录
|
||
|
||
- `/app/data/config/config.yaml` - 配置文件(只读)
|
||
- `/app/data/storage/` - 证书文件目录(只读)
|
||
|
||
### 网络
|
||
|
||
容器会加入 `dd.net` 网络,可以与其他服务通信。
|
||
|
||
## 📝 常用命令
|
||
|
||
```bash
|
||
# 查看日志
|
||
docker logs -f dd-fiber-api
|
||
|
||
# 停止服务
|
||
docker stop dd-fiber-api
|
||
|
||
# 重启服务
|
||
docker restart dd-fiber-api
|
||
|
||
# 删除容器
|
||
docker rm -f dd-fiber-api
|
||
|
||
# 查看容器状态
|
||
docker ps | grep dd-fiber-api
|
||
```
|
||
|
||
## ⚠️ 注意事项
|
||
|
||
1. **配置文件路径**:容器内配置文件路径为 `/app/data/config/config.yaml`
|
||
2. **证书路径**:证书文件路径需要使用容器内路径 `/app/data/storage/...`
|
||
3. **网络**:确保 `dd.net` 网络已创建:`docker network create dd.net`
|
||
4. **权限**:证书文件建议设置只读权限:`chmod 600 storage/**/*.pem`
|
||
|
||
## 🔒 安全建议
|
||
|
||
1. 不要将包含敏感信息的 `config.yaml` 提交到 Git
|
||
2. 使用只读挂载(`:ro` 标志)
|
||
3. 限制证书文件权限
|
||
4. 生产环境建议使用密钥管理服务(如 Kubernetes Secrets)
|
||
|