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

部署脚本使用说明

脚本列表

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 "你的密码"

功能特点

  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

    $env:DOCKER_BUILDKIT=1
    
  2. PuTTY 要求:脚本需要 PuTTY 工具(plink.exe 和 pscp.exe)

  3. 文件路径:确保要上传的文件存在于本地

  4. 服务器权限:确保 SSH 用户有足够的权限执行部署操作

更新日志

v1.0.0

  • 初始版本
  • 支持 Docker 构建缓存
  • 支持密码和 SSH 密钥认证
  • 自动备份和错误处理