novel-reader/DEPLOY.md
2025-12-06 18:19:46 +08:00

159 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Docker 部署指南
## 前置要求
- NAS 上已安装 Docker 和 Docker Compose
- MongoDB 数据库已运行并可访问
- NAS 能访问 MongoDB 所在网络
## 部署步骤
### 方式一在NAS上直接构建推荐
1. **上传项目到NAS**
将整个 `server` 文件夹上传到NAS例如`/volume1/docker/novel-reader/`
2. **修改配置**
编辑 `docker-compose.yml`,修改 MongoDB 连接地址:
```yaml
environment:
- SPRING_DATA_MONGODB_URI=mongodb://你的MongoDB地址:端口/数据库名
```
3. **构建并启动**
SSH 连接到 NAS执行
```bash
cd /volume1/docker/novel-reader
docker-compose up -d --build
```
4. **查看日志**
```bash
docker-compose logs -f
```
### 方式二:本地构建镜像后上传
1. **本地构建镜像**
```bash
cd server
docker build -t novel-reader:latest .
```
2. **导出镜像**
```bash
docker save novel-reader:latest > novel-reader.tar
```
3. **上传到NAS并导入**
```bash
# 在NAS上执行
docker load < novel-reader.tar
```
4. **修改 docker-compose.yml**
注释掉 `build: .`,启用 `image:`
```yaml
services:
novel-reader:
# build: .
image: novel-reader:latest
```
5. **启动服务**
```bash
docker-compose up -d
```
## 常用命令
```bash
# 启动服务
docker-compose up -d
# 停止服务
docker-compose down
# 查看日志
docker-compose logs -f
# 重启服务
docker-compose restart
# 重新构建并启动
docker-compose up -d --build
# 查看容器状态
docker-compose ps
```
## 访问应用
启动成功后,访问:`http://NAS的IP地址:8080`
在 iPhone 上:
1. 用 Safari 打开上述地址
2. 点击分享按钮 → "添加到主屏幕"
3. 即可像原生App一样使用
## 配置说明
### 环境变量
| 变量名 | 说明 | 默认值 |
|--------|------|--------|
| SPRING_DATA_MONGODB_URI | MongoDB连接地址 | mongodb://192.168.18.100:38403/novel |
| JAVA_OPTS | JVM参数 | -Xms128m -Xmx256m |
| TZ | 时区 | Asia/Shanghai |
### 内存调优
根据 NAS 内存大小调整 `JAVA_OPTS`
- 1GB 可用内存:`-Xms128m -Xmx256m`
- 2GB 可用内存:`-Xms256m -Xmx512m`
- 4GB+ 可用内存:`-Xms512m -Xmx1024m`
### 端口修改
如需修改端口,编辑 `docker-compose.yml`
```yaml
ports:
- "你想要的端口:8080"
```
## 故障排除
### 1. 容器启动失败
```bash
# 查看详细日志
docker-compose logs novel-reader
```
### 2. 无法连接 MongoDB
- 检查 MongoDB 地址是否正确
- 检查 NAS 与 MongoDB 网络是否互通
- 如果 MongoDB 也在 Docker 中,考虑使用 Docker 网络
### 3. 内存不足
减小 JVM 内存配置,或增加 NAS 可用内存
### 4. 健康检查失败
```bash
# 禁用健康检查(临时)
# 在 docker-compose.yml 中注释掉 healthcheck 部分
```
## 更新应用
```bash
# 拉取最新代码后
docker-compose down
docker-compose up -d --build
```