# 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 ```