flnxi-Wu/scripts/deploy/README.md
WuYongJie f646b71813
Some checks failed
CI Check / check (push) Has been cancelled
chore: 初始化本地仓库并同步最近改动
2025-11-18 17:50:16 +08:00

136 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 部署脚本使用说明
## 脚本列表
### 1. deploy-optimized.ps1 (推荐)
优化的部署脚本,使用 Docker 构建缓存和最佳实践。
**使用方法:**
```powershell
# 使用默认密码
.\scripts\deploy\deploy-optimized.ps1
# 指定密码
.\scripts\deploy\deploy-optimized.ps1 -Password "你的密码"
# 不使用缓存构建
.\scripts\deploy\deploy-optimized.ps1 -NoCache
# 指定服务器和项目路径
.\scripts\deploy\deploy-optimized.ps1 -Server "192.168.1.100" -ProjectPath "/path/to/project"
```
**参数说明:**
- `-Server`: 服务器地址(默认: 45.249.208.118)
- `-User`: SSH 用户名(默认: root)
- `-Password`: SSH 密码(默认: 脚本中预设的密码)
- `-ProjectPath`: 项目路径(默认: /root/youyidian-3d)
- `-NoCache`: 不使用构建缓存(完全重新构建)
### 2. deploy-with-ssh-key.ps1
使用 SSH 密钥的部署脚本(更安全,但需要配置密钥)。
**使用方法:**
```powershell
# 使用默认密钥路径
.\scripts\deploy\deploy-with-ssh-key.ps1
# 指定密钥路径
.\scripts\deploy\deploy-with-ssh-key.ps1 -SshKeyPath "C:\path\to\key"
```
### 3. encrypt-password.ps1 (可选)
加密密码工具,用于创建加密密码文件(如果将来需要使用)。
**使用方法:**
```powershell
# 加密密码
.\scripts\deploy\encrypt-password.ps1 -PlainPassword "你的密码"
# 指定输出文件
.\scripts\deploy\encrypt-password.ps1 -PlainPassword "你的密码" -OutputFile "my-password.encrypted"
```
### 4. decrypt-password.ps1 (可选)
解密密码工具,用于测试加密密码文件。
**使用方法:**
```powershell
.\scripts\deploy\decrypt-password.ps1 -EncryptedPasswordFile "deploy-password.encrypted"
```
## 快速开始
### 最简单的使用方式:
```powershell
# 1. 修改脚本中的默认密码(如果需要)
# 编辑 scripts/deploy/deploy-optimized.ps1,修改 $Password 默认值
# 2. 运行部署脚本
.\scripts\deploy\deploy-optimized.ps1
```
### 使用自定义密码:
```powershell
.\scripts\deploy\deploy-optimized.ps1 -Password "你的密码"
```
## 功能特点
1. **智能构建缓存**:默认使用 Docker 构建缓存,大幅加速部署
2. **优雅停止容器**:使用 timeout 参数优雅停止旧容器
3. **自动备份数据**:部署前自动备份 uploads 目录
4. **错误处理**:完善的错误检查和提示
5. **状态检查**:自动检查容器状态和日志
## 安全建议
1. **不要将密码提交到 Git**:如果修改了脚本中的默认密码,确保不要提交到 Git 仓库
2. **使用环境变量**:可以考虑使用环境变量存储密码
3. **定期更换密码**:定期更换服务器密码
4. **使用 SSH 密钥**:如果可能,使用 SSH 密钥而不是密码(更安全)
## 故障排除
### 1. 连接失败
- 检查服务器地址和端口是否正确
- 检查网络连接
- 检查防火墙设置
### 2. 密码错误
- 确认密码正确
- 检查用户名是否正确
### 3. 构建失败
- 检查 Docker 是否正常运行
- 检查 Docker Compose 是否安装
- 查看构建日志获取详细错误信息
### 4. 文件上传失败
- 检查文件路径是否正确
- 检查服务器磁盘空间
- 检查文件权限
## 注意事项
1. **BuildKit 要求**:Dockerfile 使用了 BuildKit 缓存挂载,需要启用 BuildKit
```powershell
$env:DOCKER_BUILDKIT=1
```
2. **PuTTY 要求**:脚本需要 PuTTY 工具(plink.exe 和 pscp.exe)
- 下载地址:https://www.putty.org/
3. **文件路径**:确保要上传的文件存在于本地
4. **服务器权限**:确保 SSH 用户有足够的权限执行部署操作
## 更新日志
### v1.0.0
- 初始版本
- 支持 Docker 构建缓存
- 支持密码和 SSH 密钥认证
- 自动备份和错误处理