Rainbond通过对接Git仓库来创建基于源代码及Dockerfile的应用。

通过【自定义源码】的方式创建应用,当你填写Git地址时,平台会自动判断地址的协议,如果是HTTP的Git地址,平台会提示你输入Git仓库的用户名和密码,如果是公开项目,用户名密码可以省略。当输入的Git地址是SSH协议时,平台会提示你将rainbond的SSH公钥复制到Git仓库中。

本文主要讲解通过 SSH 公钥的方式对接私有部署的Git仓库,以 GitLab为示例进行说明。

一、配置SSH公钥对接私有仓库

1.1 获取公钥

进入【创建应用】-【从源码创建】-【自定义源码】,将项目的SSh协议的地址复制到【Git仓库地址】栏中时,会提示【配置授权Key】连接,点开显示详细信息:

对接Git Server - 图1

1.2 Gitlab创建新项目

  • 新建项目
    对接Git Server - 图2

  • 填写项目名称
    对接Git Server - 图3

  • 创建示例代码
    对接Git Server - 图4

提示:

切换到SSH地址后,需要记住项目的SSH地址,后续创建应用时需要用到,这里的地址是 git@172.16.210.205:test/helloworld.git

新建一个index.html 的文件,内容为 hello world,hello goodrain! 提交。

对接Git Server - 图5

1.3 将公钥添加到Git仓库

  • 切换到项目首页
    对接Git Server - 图6

  • 添加SSH公钥
    对接Git Server - 图7

  • SSH 公钥添加完成
    对接Git Server - 图8

1.4 测试对接是否成功

通过私有仓库创建应用的方式来测试云帮能否通过SSH关于获取Git仓库中的代码。

  • 创建应用对接Git Server - 图9

  • 能够识别语言,代表对接成功

对接Git Server - 图10

二、对接云帮上部署的GitLab私有仓库

上文介绍的是对接现有GitLab的情况,如果你还没有Git仓库,云帮可以一键部署GitLab应用,下面主要介绍对接云帮上部署的GitLab

2.1 创建GitLab应用

通过 【新建应用】-【应用市场】搜索到GitLab应用,选择需要的版本安装即可。

2.2 配置GitLab

GitLab安装完成后,可以在应用的端口页面看到对外打开的端口号,如下图:

对接Git Server - 图11

  • 端口号:应用内部监听的端口,本例中监听了2280端口
  • 访问地址:云帮映射的地址与端口,本例中 22端口映射的地址为172.16.210.205,端口为20006 ,80端口地址为80.grea7fc4.zggk.48mt2.goodrain.org,端口为80

提示:

  • 云帮为HTTP协议的应用端口默认分配一个访问域名
  • 云帮为非HTTP协议的应用端口默认分配一个访问地址和一个随机的映射端口,但端口映射与应用端口唯一对应,不会变化,因此本例的端口可能与你实际情况不一致。

2.2.1 设置GitLab的HTTP和SSH地址

GitLab应用通过 GITLAB_SSH_HOSTGITLAB_HOST 环境变量来设置SSH和HTTP的地址,因此需要将这两个变量设置到GitLab应用中。

对接Git Server - 图12

提示:

设置环境变量后,需要重启GitLab应用。

2.3 创建应用时Git地址中的端口配置

由于SSH协议使用的是非默认的22端口,因此在创建应用时,填写的Git地址也需要加上端口信息,格式如下:

  1. # 默认地址
  2. git@172.16.210.205:test/helloworld.git
  3. # 修改为
  4. git@172.16.210.205:20006/test/helloworld.git