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