Files
2026-06-01 13:43:09 +08:00

4.8 KiB
Raw Permalink Blame History

模板上传脚本使用说明

功能说明

提供四个脚本用于模板部署与重启:

  1. deploy-templates.sh - 完整部署流程(推荐)

    • 打包所有模板
    • 上传到远程服务器
    • 重启 rcoder 容器内 nuwax-file-server 进程(不重启整个容器)
  2. upload-templates.sh - 仅上传已有的 zip 文件

    • 适用于已经打包好的情况
    • 仅上传文件,不执行任何重启
  3. restart-file-server.sh - 仅重启 nuwax-file-server 进程

    • rcoder 容器内先停止旧进程,再拉起新进程
    • 内置健康检查
  4. restart-rcoder.sh - 仅重启 rcoder 容器

    • 与 file-server 进程重启完全解耦

前置要求

安装 sshpass

macOS 上需要安装 sshpass 工具来实现自动化 SSH 登录:

brew install hudochenkov/sshpass/sshpass

配置说明

1. 创建 .env 文件

在项目根目录创建 .env 文件(已在 .gitignore 中,不会提交到 git

cp .env.example .env

2. 配置环境变量

编辑 .env 文件,设置远程服务器信息:

REMOTE_HOST=192.168.1.34
REMOTE_USER=swufe
REMOTE_PASSWORD=Swufe@2024
REMOTE_PATH=/home/swufe/nuwax/docker/config/rcoder/template

使用方法

方式一: 完整部署(推荐)

一键完成打包、上传并重启容器内 file-server

# 使用 npm script推荐
pnpm deploy:templates

# 或直接运行脚本
./scripts/deploy-templates.sh

这个脚本会:

  1. 使用 pnpm pack:all 打包所有模板
  2. 上传 react-vite 和 vue3-vite 到远程服务器
  3. 重启 rcoder 容器内 nuwax-file-server 进程

方式二: 仅上传

如果已经打包好了,只需要上传:

# 使用 npm script推荐
pnpm upload:templates

# 或直接运行脚本
./scripts/upload-templates.sh

方式三: 仅重启 file-server

# 使用 npm script推荐
pnpm restart:file-server

# 或直接运行脚本
./scripts/restart-file-server.sh

方式四: 仅重启 rcoder 容器

# 使用 npm script推荐
pnpm restart:rcoder

# 或直接运行脚本
./scripts/restart-rcoder.sh

脚本执行流程

  1. 加载 .env 配置
  2. 检查必需的环境变量
  3. 查找 zip/ 目录下最新的模板文件:
    • react-vite-template_*.zip
    • vue3-vite-template_*.zip
  4. 重命名为标准名称:
    • react-vite-template.zip
    • vue3-vite-template.zip
  5. 上传到远程服务器

上传的文件

脚本会自动上传以下两个模板:

  • react-vite-template.zip - React + Vite 模板
  • vue3-vite-template.zip - Vue3 + Vite 模板

注意:react-next-template 不会被上传(根据需求只上传 vite 模板)

远程服务器路径

上传目标路径:/home/swufe/nuwax/docker/config/rcoder/template

上传后的文件结构:

/home/swufe/nuwax/docker/config/rcoder/template/
├── react-vite-template.zip
├── react-vite-template/          # 自动解压后的目录
├── vue3-vite-template.zip
└── vue3-vite-template/           # 自动解压后的目录

自动化流程

脚本会自动完成以下操作:

  1. 上传模板文件 - 上传最新的 react-vite 和 vue3-vite 模板
  2. 重启 file-server 进程 - 在 rcoder 容器内重启 nuwax-file-server
  3. 容器重启(可选) - 如有需要,手动执行 restart-rcoder.sh

无需手动干预,一键完成整个部署流程。

安全说明

  • .env 文件包含敏感信息(密码),已添加到 .gitignore
  • 不要将 .env 文件提交到 git 仓库
  • 可以使用 .env.example 作为配置模板分享

故障排除

sshpass 未安装

错误: sshpass 未安装
请运行: brew install hudochenkov/sshpass/sshpass

解决方法:安装 sshpass

.env 文件不存在

错误: .env 文件不存在,请先创建 .env 文件

解决方法:复制 .env.example 并修改配置

未找到模板文件

错误: 未找到 react-vite-template zip 文件

解决方法:确保 zip/ 目录下存在对应的模板 zip 文件

SSH 连接失败

检查:

  1. 远程服务器 IP 是否正确
  2. 用户名和密码是否正确
  3. 网络连接是否正常
  4. 远程服务器是否开启 SSH 服务

手动上传方式

如果自动脚本无法使用,可以手动上传:

# 1. 进入 zip 目录
cd zip

# 2. 使用 scp 上传
scp react-vite-template_*.zip swufe@192.168.1.34:/home/swufe/nuwax/docker/config/rcoder/template/react-vite-template.zip
scp vue3-vite-template_*.zip swufe@192.168.1.34:/home/swufe/nuwax/docker/config/rcoder/template/vue3-vite-template.zip

# 3. SSH 登录到远程服务器
ssh swufe@192.168.1.34

# 4. 解压文件
cd /home/swufe/nuwax/docker/config/rcoder/template
unzip -o react-vite-template.zip -d react-vite-template
unzip -o vue3-vite-template.zip -d vue3-vite-template