quick-deploy
目的:集成自托管 gitlab,进行简单的配置,发布代码就自动部署
在工作机器上用 pm2/容器的方式启用 quick-deploy,指定环境变量:
- gitlab token // 用于下载代码
- docker registry // 用于 push 镜像 // Jenkins ?
- 服务器 ssh 名称 // 用于远端部署,需手动添加 ssh config
- mongo IP/PORT // 用于持续化储存各项目数据
- webhook token // 用于验证消息
- notify webhook // 用于报告部署结果
用户更新项目时运行步骤:
- 构建
- publish(package)或者使用 docker-compose 远端运行最新的镜像
- node 镜像
用户接入步骤:
- 在 Web UI 中新建项目
- 指定项目名称 // gitlab repo 名称
- 指定分支
- 指定 env
- 指定实例数量
- 指定端口
- 指定构建脚本
- 输出目录/执行文件
- nginx 反向代理
重启自己:手动执行 docker-compose up -d
回滚:代码回滚 // 合并 commit
生成域名 // 需要独立服务,动态解析
集群部署:k8s // 机器 ip + 容器 ip + 容器随机端口
7*24:k8s // 多端口容器 + nginx upstream
支持 monorepo(lerna):
- 使用 base 来指定目标项目
- git diff 来检查目标项目是否需要发布
- lerna publish prepatch -y --no-verify-access
域名绑定:
- nginx 使用自带 DNS 解析
- 将相应域名解析到目标容器 IP
- 目标容器中到 nginx 反向代理到指定端口