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 远端运行最新的镜像

未考虑:
  • 生成域名 // 需要独立服务,动态解析
  • 集群部署 // 机器 ip + 容器 ip + 容器随机端口

用户接入步骤:
  1. 在 Web UI 中新建项目
    • 指定项目名称 // gitlab repo 名称
    • 指定分支
    • 指定 env
    • 指定实例数量
    • 指定端口
    • 指定构建脚本
    • 输出目录/执行文件
  2. nginx 反向代理

重启自己:手动执行 docker-compose up -d

回滚:代码回滚 // 合并 commit

7*24:k8s // 多端口容器 + nginx upstream

支持 monorepo(lerna):
  • 使用 base 来指定目标项目
  • git diff 来检查目标项目是否需要发布
  • lerna publish prepatch -y --no-verify-access

域名绑定:
  1. nginx 使用自带 DNS 解析
  2. 将相应域名解析到目标容器 IP
  3. 目标容器中到 nginx 反向代理到指定端口