Some checks failed
CI Check / check (push) Has been cancelled
- 移除高亮卡片效果,避免与虚位卡片视觉重复 - 松开鼠标后立即更新布局,不再等待动画完成 - 优化拖拽动画效果,使用弹性缓动函数 - 更新 CHANGELOG.md 记录本次优化
92 lines
4.0 KiB
Markdown
92 lines
4.0 KiB
Markdown
# 部署脚本使用说明
|
||
|
||
## 脚本分层
|
||
|
||
| 类型 | 文件 | 说明 |
|
||
| --- | --- | --- |
|
||
| **通用入口** | `安全部署.ps1` / `安全部署.sh` | 推荐使用。封装了巡检 → 构建 → 镜像推送 → 远程 compose → `/api/health` 轮询的整套流程,支持 Windows PowerShell 与 Bash。 |
|
||
| **本地打包 + 上传** | `local-build-and-upload.ps1` | 在无法推镜像的场景下,先本地构建/打包,再通过 `scp` 上传到远端解压并 `docker compose up`。 |
|
||
| **增量/应急脚本** | `deploy-optimized.ps1`、`execute-remote-deploy.ps1` | 早期“直接上传源码 + 服务器构建”方案仍保留以备回退,但已退出默认流程。调用前请确认服务器网络具备拉取基础镜像的能力。 |
|
||
| **辅助排障** | `check-*.ps1`、`fix-*.ps1`、`setup-*.ps1`、`manual-import-image.ps1`、`export-and-upload-image.ps1` 等 | 用于检查 Docker/网络状态、修复私有 Registry、导出/导入镜像、创建客户离线包等。 |
|
||
| **安全工具** | `encrypt-password.ps1` / `decrypt-password.ps1` | 需要以明文密码方式部署时,可通过该工具生成/验证加密密钥文件,避免将密码直接写进脚本。 |
|
||
|
||
> ℹ️ 其余历史脚本(例如 `deploy-simple.ps1`、`deploy-with-ssh-key.ps1` 等)已在 2025-11-19 归档/删除,避免误用老旧流程。
|
||
|
||
## 快速开始
|
||
|
||
### 推荐:安全部署脚本
|
||
```powershell
|
||
# Windows
|
||
.\scripts\deploy\安全部署.ps1
|
||
|
||
# macOS / Linux
|
||
bash scripts/deploy/安全部署.sh
|
||
```
|
||
|
||
脚本会依次完成:
|
||
1. 本地依赖检测与构建
|
||
2. Docker 镜像打包、标记与推送(或覆盖)
|
||
3. 远程服务器 SSH/Registry 连接校验
|
||
4. `docker compose` 滚动更新
|
||
5. 健康检查 & 日志输出
|
||
|
||
### 备用:本地打包上传
|
||
```powershell
|
||
.\scripts\deploy\local-build-and-upload.ps1 `
|
||
-Server "192.168.1.100" `
|
||
-User "root" `
|
||
-Password "****" `
|
||
-ProjectPath "/root/youyidian-3d"
|
||
```
|
||
|
||
> ⚠️ 此脚本仍会在服务器端执行 `docker compose build`,需要确保远程机器能访问基础镜像或提前导入(可搭配 `export-and-upload-image.ps1` / `manual-import-image.ps1`)。
|
||
|
||
## 功能特点
|
||
|
||
1. **阶段化输出**:每个阶段均打印醒目标题,失败时便于快速定位。
|
||
2. **健康检查**:完成后自动轮询 `/api/health`,确认服务可用再退出。
|
||
3. **容器友好**:统一使用 `docker compose`,兼容 `docker-compose`。
|
||
4. **数据保护**:上传前自动备份 `uploads/`,部署完成再恢复。
|
||
5. **镜像托管**:配合 `setup-registry*.ps1` 可快速初始化私有 Registry。
|
||
|
||
## 安全建议
|
||
|
||
1. **不要将密码提交到 Git**:如果修改了脚本中的默认密码,确保不要提交到 Git 仓库
|
||
2. **使用环境变量**:可以考虑使用环境变量存储密码
|
||
3. **定期更换密码**:定期更换服务器密码
|
||
4. **使用 SSH 密钥**:如果可能,使用 SSH 密钥而不是密码(更安全)
|
||
|
||
## 故障排除
|
||
|
||
### 1. 连接失败
|
||
- 检查服务器地址和端口是否正确
|
||
- 检查网络连接
|
||
- 检查防火墙设置
|
||
|
||
### 2. 密码错误
|
||
- 确认密码正确
|
||
- 检查用户名是否正确
|
||
|
||
### 3. 构建失败
|
||
- 检查 Docker 是否正常运行
|
||
- 检查 Docker Compose 是否安装
|
||
- 查看构建日志获取详细错误信息
|
||
|
||
### 4. 文件上传失败
|
||
- 检查文件路径是否正确
|
||
- 检查服务器磁盘空间
|
||
- 检查文件权限
|
||
|
||
## 注意事项
|
||
|
||
1. **BuildKit**:Dockerfile 默认启用 BuildKit,如果本地未开启可通过 `$env:DOCKER_BUILDKIT=1`(PowerShell)或 `export DOCKER_BUILDKIT=1`(Bash)打开。
|
||
2. **PuTTY**:仍需 `plink.exe`/`pscp.exe`(Windows 下)。可在 https://www.putty.org/ 下载。
|
||
3. **Host Key**:首次连接服务器建议手动将指纹加入 `known_hosts`,避免脚本交互中断。
|
||
4. **凭证管理**:优先使用 SSH 密钥或加密密码文件,避免明文写入脚本。
|
||
|
||
## 更新日志
|
||
|
||
- **2025-11-19**:清理 legacy 脚本,仅保留安全部署 + 本地打包路径;README 改为按场景列举。
|
||
- **v1.0.0**:初始版本,支持 Docker 构建缓存、密码/密钥认证、自动备份。
|
||
|