159 lines
2.9 KiB
Markdown
159 lines
2.9 KiB
Markdown
# 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
|
||
```
|
||
|