5.5 KiB
5.5 KiB
部署前安全检查清单
✅ 运行脚本前请确认
1. 构建机配置(setup-build-server.ps1)
操作范围:只在构建机(192.168.42.134)
- 确认目标服务器是构建机:
192.168.42.134 - 确认不会连接生产服务器
- 确认只安装 Docker Compose 和 Registry
- 确认不会操作任何数据
安全保证:
- ✅ 不会连接生产服务器
- ✅ 不会操作数据库
- ✅ 不会操作存储桶
- ✅ 不会操作 uploads 目录
2. 生产服务器配置(setup-production-server.ps1)
操作范围:只修改 Docker 配置
- 确认目标服务器是生产服务器:
192.168.58.20 - 确认只修改
/etc/docker/daemon.json - 确认会备份现有配置
- 确认重启 Docker 时间约 5-10 秒
安全保证:
- ✅ 不会操作 uploads 目录
- ✅ 不会操作数据库
- ✅ 不会操作存储桶
- ✅ 不会删除任何文件
- ✅ 容器会自动重启
重启影响:
- ⚠️ Docker 服务重启:5-10 秒
- ⚠️ 所有容器短暂中断后自动恢复
- ✅ 数据不会丢失
3. 部署脚本(deploy-build-server.ps1)
操作范围:构建镜像 → 传输镜像 → 启动容器
- 确认部署目标(shadow 或 production)
- 确认只操作应用容器
- 确认 uploads 目录只挂载,不修改
- 确认临时文件在 /tmp/ 目录
安全保证:
- ✅ uploads 目录:只挂载,不修改
- ✅ 数据库:不操作(只通过应用连接)
- ✅ 存储桶:不操作(只通过应用连接)
- ✅ 其他容器:不操作(PostgreSQL、MinIO、Redis、frp)
- ✅ 临时文件:自动清理
操作的容器:
- ✅
youyidian-3d-material(正式系统) - ✅
youyidian-3d-shadow(影子系统)
不操作的容器:
- ❌
gongxiangpan-postgres-1(数据库) - ❌
minio(存储服务) - ❌
youyidian-3d-redis-shadow(Redis) - ❌
frpc-minio(frp 客户端)
🔍 运行前检查命令
检查生产服务器状态
# 检查运行中的容器
& "C:\Program Files\PuTTY\plink.exe" -batch -pw "jsjj8888" root@192.168.58.20 "docker ps --format 'table {{.Names}}\t{{.Status}}'"
# 检查 uploads 目录(只看前 20 个文件)
& "C:\Program Files\PuTTY\plink.exe" -batch -pw "jsjj8888" root@192.168.58.20 "ls -la /mnt/PoolOne/apps/youyidian-3d/uploads | head -20"
# 检查 uploads 文件数量
& "C:\Program Files\PuTTY\plink.exe" -batch -pw "jsjj8888" root@192.168.58.20 "find /mnt/PoolOne/apps/youyidian-3d/uploads -type f | wc -l"
检查构建机状态
# 检查 Docker 版本
& "C:\Program Files\PuTTY\plink.exe" -batch -pw "Jsjj@8888" root@192.168.42.134 "docker --version"
# 检查磁盘空间
& "C:\Program Files\PuTTY\plink.exe" -batch -pw "Jsjj@8888" root@192.168.42.134 "df -h /"
📋 运行步骤
第一次配置(只需执行一次)
-
配置构建机:
.\setup-build-server.ps1- 预计时间:2-3 分钟
- 操作:安装 Docker Compose + Registry
- 影响:无(只在构建机)
-
检查生产服务器(不修改):
.\setup-production-server.ps1 -DryRun- 预计时间:30 秒
- 操作:只检查,不修改
- 影响:无
-
配置生产服务器:
.\setup-production-server.ps1- 预计时间:1 分钟
- 操作:配置 insecure-registry
- 影响:Docker 重启 5-10 秒
日常部署(每次部署)
-
部署到影子系统(测试):
.\deploy-build-server.ps1 -Target shadow- 预计时间:2-5 分钟
- 操作:构建 → 传输 → 部署
- 影响:只影响影子系统(端口 5320)
-
部署到正式系统(生产):
.\deploy-build-server.ps1 -Target production- 预计时间:2-5 分钟
- 操作:构建 → 传输 → 部署
- 影响:正式系统短暂重启(约 10 秒)
🚨 紧急回滚
如果部署出现问题
-
查看容器日志:
& "C:\Program Files\PuTTY\plink.exe" -batch -pw "jsjj8888" root@192.168.58.20 "docker logs youyidian-3d-material --tail 100" -
重启容器:
& "C:\Program Files\PuTTY\plink.exe" -batch -pw "jsjj8888" root@192.168.58.20 "docker restart youyidian-3d-material" -
恢复 Docker 配置(如果配置有问题):
& "C:\Program Files\PuTTY\plink.exe" -batch -pw "jsjj8888" root@192.168.58.20 "cp /etc/docker/daemon.json.backup.* /etc/docker/daemon.json && systemctl restart docker" -
检查 uploads 目录(确认没有被删除):
& "C:\Program Files\PuTTY\plink.exe" -batch -pw "jsjj8888" root@192.168.58.20 "ls -la /mnt/PoolOne/apps/youyidian-3d/uploads | head -20"
✅ 最终确认
在运行任何脚本前,请确认:
- 我已阅读并理解所有安全保证
- 我确认脚本不会操作 uploads 目录
- 我确认脚本不会操作数据库
- 我确认脚本不会操作存储桶
- 我知道如何查看日志和回滚
- 我已备份重要数据(如果是第一次运行)
准备好了吗?开始配置!
- 先运行:
.\setup-build-server.ps1 - 然后运行:
.\setup-production-server.ps1 -DryRun(检查) - 确认无误后:
.\setup-production-server.ps1(配置) - 最后测试:
.\deploy-build-server.ps1 -Target shadow(部署到影子系统)
文档版本:v1.0
更新时间:2025-01-17