136 lines
3.7 KiB
Markdown
136 lines
3.7 KiB
Markdown
# 部署脚本使用说明
|
||
|
||
## 脚本列表
|
||
|
||
### 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 密钥认证
|
||
- 自动备份和错误处理
|
||
|