整理仓库:扩展 gitignore、归档文档、清理冗余 Dockerfile

- .gitignore 新增忽略 .idea/、videos/、*.tar.gz、*.csproj.user、db 运行时文件
- 根目录 15 个中文运维 md 归档到 docs/
- 删除无部署脚本引用的 Dockerfile 与 Dockerfile-arm(保留 Dockerfile.prod)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
yuming
2026-04-24 21:28:41 +08:00
parent af40ed69fc
commit ad97fd3da5
18 changed files with 3811 additions and 21 deletions
+381
View File
@@ -0,0 +1,381 @@
# dysync.net 部署指南
本文档详细说明如何将修改后的项目部署到生产环境。
## 📋 目录
1. [准备工作](#准备工作)
2. [构建 Docker 镜像](#构建-docker-镜像)
3. [推送到镜像仓库](#推送到镜像仓库)
4. [使用 Docker Compose 部署](#使用-docker-compose-部署)
5. [验证部署](#验证部署)
6. [常见问题](#常见问题)
---
## 🔧 准备工作
### 1. 环境要求
- **Docker**:版本 20.10+
- **Docker Compose**:版本 1.29+(或 Docker Compose V2)
- **.NET SDK 6.0**:用于构建项目(本地开发环境)
- **Node.js 18+**:用于构建前端(本地开发环境)
- **阿里云容器镜像服务账号**:用于推送镜像(或其他镜像仓库)
### 2. 创建必要的目录
```bash
# 在项目根目录创建以下目录(如果不存在)
mkdir -p db collect favorite uper logs
```
### 3. 配置镜像仓库(阿里云)
1. 登录 [阿里云容器镜像服务](https://cr.console.aliyun.com/)
2. 创建命名空间(如:`jianzhichu`)
3. 创建镜像仓库(如:`dysync.net`)
4. 获取登录凭证
---
## 🏗️ 构建 Docker 镜像
### 方式一:使用多阶段构建(推荐)
项目已提供优化的 `Dockerfile.prod`,包含前端和后端的完整构建:
```bash
# 在项目根目录执行
docker build -f Dockerfile.prod -t dysync.net:latest .
```
### 方式二:手动构建前端后构建镜像
如果多阶段构建遇到问题,可以手动构建前端:
```bash
# 1. 构建前端
cd app
pnpm install
pnpm build
cd ..
# 2. 确保 app/dist 目录存在且包含构建产物
# 3. 使用原始 Dockerfile 构建
docker build -t dysync.net:latest .
```
### 构建 ARM 架构镜像(适用于 Apple Silicon、树莓派等)
```bash
# 使用 Dockerfile-arm(如果存在)
docker build -f Dockerfile-arm -t dysync.net:arm-latest .
# 或者使用 buildx 构建多架构镜像
docker buildx build --platform linux/amd64,linux/arm64 -t dysync.net:latest .
```
---
## 📤 推送到镜像仓库
### 1. 登录阿里云容器镜像服务
```bash
# 替换为你的实际信息
docker login --username=你的用户名 registry.cn-hangzhou.aliyuncs.com
# 输入密码(在阿里云控制台获取)
```
### 2. 标记镜像
```bash
# 标记镜像(替换为你的实际仓库地址)
docker tag dysync.net:latest registry.cn-hangzhou.aliyuncs.com/jianzhichu/dysync.net:latest
# 如果构建了 ARM 版本
docker tag dysync.net:arm-latest registry.cn-hangzhou.aliyuncs.com/jianzhichu/dysync.net:arm_1.0
```
### 3. 推送镜像
```bash
# 推送 AMD64 版本
docker push registry.cn-hangzhou.aliyuncs.com/jianzhichu/dysync.net:latest
# 推送 ARM 版本(如果构建了)
docker push registry.cn-hangzhou.aliyuncs.com/jianzhichu/dysync.net:arm_1.0
```
---
## 🚀 使用 Docker Compose 部署
### 1. 准备 docker-compose.yml
项目根目录已包含 `docker-compose.yml` 文件,根据实际情况修改路径:
```yaml
version: '3.8'
services:
dysync:
image: registry.cn-hangzhou.aliyuncs.com/jianzhichu/dysync.net:latest
container_name: dysync
restart: always
ports:
- "10101:10101"
volumes:
- ./db:/app/db # 数据库目录
- ./collect:/app/collect # 收藏视频目录
- ./favorite:/app/favorite # 喜欢视频目录
- ./uper:/app/uper # 博主视频目录(可选)
- ./logs:/app/logs # 日志目录(可选)
environment:
- TZ=Asia/Shanghai
dns:
- 8.8.8.8
- 114.114.114.114
```
### 2. 修改路径映射
**重要**:根据你的实际存储路径修改 `volumes` 部分:
```yaml
volumes:
# Linux/Unix 路径示例
- /volume1/docker/dysync/db:/app/db
- /volume2/media/dysync/collect:/app/collect
- /volume2/media/dysync/favorite:/app/favorite
# Windows 路径示例(使用正斜杠)
- D:/dysync/db:/app/db
- D:/dysync/collect:/app/collect
- D:/dysync/favorite:/app/favorite
# macOS 路径示例
- ~/dysync/db:/app/db
- ~/dysync/collect:/app/collect
- ~/dysync/favorite:/app/favorite
```
### 3. 启动服务
```bash
# 启动服务(后台运行)
docker-compose up -d
# 查看日志
docker-compose logs -f
# 查看服务状态
docker-compose ps
```
### 4. 停止服务
```bash
# 停止服务
docker-compose down
# 停止并删除数据卷(谨慎使用,会删除数据)
docker-compose down -v
```
---
## ✅ 验证部署
### 1. 检查容器状态
```bash
docker ps | grep dysync
```
应该看到容器正在运行。
### 2. 检查日志
```bash
docker logs dysync
# 或
docker-compose logs -f dysync
```
应该看到类似输出:
```
dy.net service started successfully
Now listening on: http://[::]:10101
```
### 3. 访问应用
打开浏览器访问:
- **前端界面**:`http://你的服务器IP:10101`
- **Swagger API**:`http://你的服务器IP:10101/swagger`(如果启用)
### 4. 测试功能
1. 使用默认账号登录:`douyin` / `douyin2025`
2. 配置抖音 Cookie 和路径
3. 测试视频同步功能
---
## 🔄 更新部署
### 更新镜像并重启
```bash
# 1. 拉取最新镜像
docker-compose pull
# 2. 重启服务(会使用新镜像)
docker-compose up -d
# 3. 查看更新后的日志
docker-compose logs -f
```
### 重新构建并部署
```bash
# 1. 构建新镜像
docker build -f Dockerfile.prod -t dysync.net:latest .
# 2. 标记并推送
docker tag dysync.net:latest registry.cn-hangzhou.aliyuncs.com/jianzhichu/dysync.net:latest
docker push registry.cn-hangzhou.aliyuncs.com/jianzhichu/dysync.net:latest
# 3. 在服务器上拉取并重启
docker-compose pull
docker-compose up -d
```
---
## 🐛 常见问题
### 1. 镜像构建失败
**问题:前端构建失败**
```bash
# 检查 Node.js 版本
node --version # 应该是 18+
# 清除缓存重新构建
cd app
rm -rf node_modules dist
pnpm install
pnpm build
```
**问题:后端构建失败**
```bash
# 检查 .NET SDK 版本
dotnet --version # 应该是 6.0.x
# 清除构建缓存
dotnet clean
dotnet restore
```
### 2. 容器启动失败
**问题:端口被占用**
```bash
# 检查端口占用
lsof -i :10101 # Linux/macOS
netstat -ano | findstr :10101 # Windows
# 修改 docker-compose.yml 中的端口映射
ports:
- "10102:10101" # 使用其他端口
```
**问题:权限错误**
```bash
# 确保目录有写权限
chmod -R 755 db collect favorite uper logs
# 或者使用 sudo(不推荐)
sudo docker-compose up -d
```
### 3. 数据丢失问题
**问题:容器删除后数据丢失**
- 确保 `volumes` 配置正确
- 使用绝对路径而不是相对路径
- 定期备份 `db` 目录
### 4. 网络问题
**问题:无法访问外网**
- 检查 DNS 配置
- 检查防火墙设置
- 使用 `network_mode: bridge` 或 `host`
### 5. 镜像拉取失败
**问题:认证失败**
```bash
# 重新登录
docker logout registry.cn-hangzhou.aliyuncs.com
docker login registry.cn-hangzhou.aliyuncs.com
```
**问题:网络超时**
```bash
# 使用国内镜像加速器
# 在 /etc/docker/daemon.json 添加:
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
```
---
## 📝 部署检查清单
- [ ] Docker 和 Docker Compose 已安装
- [ ] 创建了必要的目录(db, collect, favorite 等)
- [ ] 修改了 docker-compose.yml 中的路径映射
- [ ] 构建了 Docker 镜像(或使用现有镜像)
- [ ] 推送到镜像仓库(或使用本地镜像)
- [ ] 启动了 Docker Compose 服务
- [ ] 验证了容器正常运行
- [ ] 能够访问前端界面
- [ ] 能够登录系统
- [ ] 配置了抖音 Cookie 和路径
- [ ] 测试了视频同步功能
---
## 🔐 安全建议
1. **修改默认密码**:首次登录后立即修改默认密码
2. **使用 HTTPS**:生产环境建议配置反向代理(Nginx)并启用 HTTPS
3. **防火墙配置**:只开放必要的端口(10101)
4. **定期备份**:定期备份 `db` 目录和重要数据
5. **更新镜像**:定期更新镜像以获取安全补丁
---
## 📚 相关文档
- [本地启动指南](./本地启动指南.md)
- [视频预览功能说明](./视频预览功能说明.md)
- [README.md](./README.md)
---
**最后更新**:2024-11-22
**版本**:v1.0