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