129 lines
2.9 KiB
Markdown
129 lines
2.9 KiB
Markdown
# 萌芽笔记后端 Docker 部署说明
|
||
|
||
## 📋 部署要求
|
||
|
||
- Docker 20.10+
|
||
- Docker Compose 2.0+
|
||
- 服务器端口 2424 未被占用
|
||
|
||
## 🚀 快速部署
|
||
|
||
### 1. 准备数据目录
|
||
|
||
```bash
|
||
# 在服务器上创建持久化目录
|
||
mkdir -p /shumengya/docker/mengyanote/data
|
||
|
||
# 将 mengyanote 文件夹的内容复制到持久化目录
|
||
cp -r mengyanote/* /shumengya/docker/mengyanote/data/
|
||
```
|
||
|
||
### 2. 构建并启动服务
|
||
|
||
```bash
|
||
# 进入后端目录
|
||
cd mengyanote-backend
|
||
|
||
# 构建并启动服务(后台运行)
|
||
docker-compose up -d --build
|
||
|
||
# 查看日志
|
||
docker-compose logs -f
|
||
|
||
# 停止服务
|
||
docker-compose down
|
||
```
|
||
|
||
### 3. 验证部署
|
||
|
||
```bash
|
||
# 测试 API 接口
|
||
curl http://localhost:2424/api/tree
|
||
|
||
# 或在浏览器访问
|
||
# http://your-server-ip:2424/api/tree
|
||
```
|
||
|
||
## 📁 目录结构
|
||
|
||
```
|
||
mengyanote-backend/
|
||
├── Dockerfile # Docker 镜像构建文件
|
||
├── docker-compose.yml # Docker Compose 配置
|
||
├── .dockerignore # Docker 忽略文件
|
||
├── main.py # 主程序
|
||
├── requirements.txt # Python 依赖
|
||
└── mengyanote/ # Markdown 数据目录
|
||
```
|
||
|
||
## 🔧 配置说明
|
||
|
||
### 端口配置
|
||
- **容器内部端口**: 8000
|
||
- **对外映射端口**: 2424
|
||
- 可在 `docker-compose.yml` 中修改 `ports` 配置
|
||
|
||
### 持久化路径
|
||
- **宿主机路径**: `/shumengya/docker/mengyanote/data`
|
||
- **容器内路径**: `/app/mengyanote`
|
||
- Markdown 文件将保存在宿主机路径中,容器重启不会丢失
|
||
|
||
### 环境变量
|
||
- `TZ=Asia/Shanghai`: 设置时区为上海时区
|
||
|
||
## 🛠️ 常用命令
|
||
|
||
```bash
|
||
# 查看容器状态
|
||
docker-compose ps
|
||
|
||
# 查看实时日志
|
||
docker-compose logs -f mengyanote-backend
|
||
|
||
# 重启服务
|
||
docker-compose restart
|
||
|
||
# 停止并删除容器
|
||
docker-compose down
|
||
|
||
# 重新构建镜像并启动
|
||
docker-compose up -d --build --force-recreate
|
||
|
||
# 进入容器内部
|
||
docker exec -it mengyanote-backend /bin/bash
|
||
```
|
||
|
||
## 🔍 健康检查
|
||
|
||
服务配置了健康检查:
|
||
- 每 30 秒检查一次 `/api/tree` 接口
|
||
- 超时时间 10 秒
|
||
- 连续失败 3 次后标记为不健康
|
||
- 启动后等待 40 秒开始检查
|
||
|
||
## 📝 更新 Markdown 数据
|
||
|
||
由于数据已持久化到宿主机,可以直接修改:
|
||
|
||
```bash
|
||
# 直接编辑持久化目录中的文件
|
||
vi /shumengya/docker/mengyanote/data/📒萌芽笔记.md
|
||
|
||
# 或者上传新文件到该目录
|
||
cp new-note.md /shumengya/docker/mengyanote/data/
|
||
```
|
||
|
||
修改后无需重启容器,API 会自动读取最新内容。
|
||
|
||
## 🔐 安全建议
|
||
|
||
1. 如果需要对外公开,建议配置 Nginx 反向代理和 SSL 证书
|
||
2. 可以通过防火墙限制访问来源
|
||
3. 定期备份 `/shumengya/docker/mengyanote/data` 目录
|
||
|
||
## ⚠️ 注意事项
|
||
|
||
1. 首次部署前确保已将数据复制到持久化目录
|
||
2. 修改 `ignore.json` 后需要重启容器:`docker-compose restart`
|
||
3. 如果修改了 `main.py`,需要重新构建镜像:`docker-compose up -d --build`
|