spug配置前端自动化发布
spug配置前端自动化发布
1. 先ssh连接服务器
1 | ssh root@服务器地址 |
2. 进入到登录用户系统目录下
1 | cd ~ |
3. 创建一个名为spug的文件夹
1 | mkdir spug |
4. 创建docker-compose.yml
1 | vi docker-compose.yml |
1 | version: "3.3" |
5. 创建docker-compose.yml
1 | vi docker-compose.yml |
6. 启动容器
1 | docker compose up -d |
7. 初始化spug
以下操作会创建一个用户名为 admin 密码为 123456 的管理员账户,可自行替换管理员账户/密码。
1 | docker exec spug init_spug admin 123456 |
不出意外此时已经安装好spug了
8. 浏览器输入服务器ip地址加上面配置的端口号,用第7步设置的账户登录
此处有一个可能会有一个问题,浏览器输入服务器ip地址加上面配置的端口号会访问不到spug应用,这是因为服务器端口没打开,需要去服务器后台打开,比如阿里云的话就是在阿里云服务器后台去设置,此处不过多赘述
9. 应用配置
1.主机管理>添加主机
2.环境管理>新建环境
3.发布配置>新建应用>新建发布>常规发布
4.配置发布信息
1.文件过滤规则
1 | dist |
此处以前端vue项目为例子,因为项目build之后我们只需dist目录里的东西,所有只需要把包含dist的文件夹打包到目标主机
2.代码检出前执行
1 | echo '代码检出前路径' # 控制台输出语句 |
作为前端项目免不了要处理项目依赖包的问题,依赖安装一般在 package.json 所在的目录(在本示例中即spug_web)中执行 npm install 或 yarn 来安装。这里使用了 全局环境变量 中的 SPUG_REPOS_DIR 和 SPUG_DEPLOY_ID 来切换到源码目录创建公共的 node_modules 目录,以后每次发布时都通过软链接的形式使用它来避免每次 发布都需要全量安装依赖包。
3.代码检出后执行
1 | echo '代码检出后路径' |
在这里进行项目的依赖包安装和编译工作,该钩子中当前目录即为按发布申请中选择 Git 分支/版本 检出后的代码目录,我们需要先把上一步创建的公共 node_modules 目录链接到当前目录(这样可以避免每次都完整的执行npm install来重复安装依赖包),然后执行 npm build 来进行项目编译。
编译后也就生成了我们在 文件过滤 中设置的 spug_web/build 目录。
此处会遇到一个问题,因为代码检出后此时环境在spug docker容器中如果在容器外安装node此时会报 node command not found, 所以此时最好在容器里安装node,推荐使用nvm安装,nvm可以自由切换node版本
4.命令执行如下代码安装nvm
1 | curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.39.3/install.sh | bash |
安装完配置一下nvm的环境变量
1 | export NVM_DIR="$HOME/.nvm |
输入如下命令验证nvm是否正确安装
1 | nvm -v |
5.通过nvm安装指定的node版本,此处可以输入自己要安装的版本
1 | nvm install v16.14.0 |
输入如下命令验证node是否正确安装
1 | node -v |
5.应用发布前
1 | echo '准备发布' |