# 前言
云帮目前支持对接GitLab、Gogs、Github,或者主流代码托管平台的公开项目,后期会考虑接入其他类型的Git服务。
# 私有云
GitLab是一个用于仓库管理系统的开源项目,私有云服务里使用比较多的自建Git服务。
## 对接GitLab
通过应用市场进行安装Gitlab
#### 安装GitLab应用
由于GitLab依赖Mysql和Redis,首先安装Mysql和Redis应用。
- 安装Mysql
- 安装Redis
- 安装GitLab
默认的管理账号:`admin@example.com/Administrator`
#### 配置Gitlab的ssh协议端口
http(s)和ssh的区别:
- http(s)前者可以随意克隆git上项目,不管是谁的;push 项目时需要验证用户名和密码
- ssh,克隆项目你必须是项目的拥有者或者管理员,且需要添加ssh key;push无需验证用户名和密码,如果key设置了密码,则需要密码(通常没必要),推荐使用SSH
待安装完成后,在GitLab应用高级选项里添加SSH端口22(stream),开启外部访问,重启应用。
###### 权限配置
管理节点:
```docker
docker pull hub.goodrain.com/dc-deploy/console:2017.03
#编辑docker-compose.yaml文件,大约在45行左右
vi /etc/goodrain/docker-compose.yam
将image: hub.goodrain.com/dc-deploy/console:2017.02修改为image: hub.goodrain.com/dc-deploy/console:2017.03
#修改完
dc-compose stop console
cclear
dc-compose up -d
```
计算节点:
```docker
#切换到租户服务目录下
cd /grdata/tenant/73e7e82d5558407696601b8461bcb4f7/service
#说明73e7e82d5558407696601b8461bcb4f7为租户id,默认Tab键就可以了
```
在gitlab应用概览页查看源代码,搜service_id对应的值(如:abc)
![](http://7xihe6.com1.z0.glb.clouddn.com/001.png)
cd到该目录下 (cd abc)后ll一下,可以看到data目录
```
#当前完整路径 pwd
/grdata/tenant/73e7e82d5558407696601b8461bcb4f7(tab补全)/service/abc(查看源码)/
chmod 755 data
# 查看data目录权限
ll -a
drwxr_xr_x
```
#### 对接GitLab
访问GitLab.
- 新建一个项目仓库
- 在仓库里新建一个index.html文件并编辑 。
###### 管理节点测试
```shell
#生成 ssh-key
ssh-keygen -t rsa -f /etc/goodrain/ssh/goodrain-builder
# 配置 ssh config文件
cat <<EOF >/etc/goodrain/ssh/config
Host *
IdentityFile ~/.ssh/goodrain-builder
StrictHostKeyChecking no
LogLevel ERROR
Port 20002
EOF
# 更改权限
chown -R rain.rain /etc/goodrain/ssh
```
查看公钥并将其添加到gitlab用户的ssh-key(路径profile/keys)
`cat /etc/goodrain/ssh/goodrain-builder.pub`
![](http://7xihe6.com1.z0.glb.clouddn.com/002.png)
```
## 测试
dps | grep build | awk '{print $1}'
din 容器id(上述命令执行的结果)
ls ~/.ssh #查看是否有文件
cd /tmp && git clone <git-url地址>
```
###### 其他机器测试
```shell
ssh-keygen
cat .ssh/id_rsa.pub #添加到gitlab
nano /etc/ssh/ssh_config
#大概格式
Host 80.gr06cf43.zhengys.1t8zf.goodrain.io #git地址
IdentityFile ~/.ssh/id_rsa #私钥完整路径
StrictHostKeyChecking no
LogLevel ERROR
Port 20002 #git ssh 对外开放的端口
#说明一下
如果存在多个Git服务,同时还使用ssh管理服务,建议在Host里指定git地址
#测试
git clone 项目url
```
![](http://7xihe6.com1.z0.glb.clouddn.com/03.png)
## 对接Gogs
相对GitLab来说,Gogs安装更加便捷,是一款极易搭建的自助 Git 服务,而且还是国人开发的。直接在应用市场安装Gogs即可。
安装完成,在高级选项里新增端口22(stream),开启对外部访问。
- 新建项目,将机器的公钥添加到用户的ssh-key列表里。
- 设置用户的ssh_config配置,大概格式
![](http://7xihe6.com1.z0.glb.clouddn.com/gogs.png)
Host 5000.gr06cf43.zhengys.1t8zf.goodrain.io #git地址
IdentityFile ~/.ssh/id_rsa #私钥完整路径
StrictHostKeyChecking no
LogLevel ERROR
Port 20002 #git ssh 对外开放的端口
- `git clone <git-url>`
## 公有云
在公有云搭建Git服务和内网自建Git服务,对接步骤相同。
公有云新建Git步骤同私有云。
云平台git clone代码,选择自建Git,然后将授权key添加Git应用的ssh-key列表里即可。
![](http://7xihe6.com1.z0.glb.clouddn.com/key.png)
## windows
打开Git Bash或者终端工具(cmder等)
生成`ssh-keygen -t rsa -f ~/.ssh/id_rsa.pub -C "email"`
新增或添加配置文件config (路径C:\Users\当前用户\.ssh/config)
```shell
Host 5000.gr06cf43.zhengys.1t8zf.goodrain.io #git地址
IdentityFile ~/.ssh/id_rsa #私钥完整路径
StrictHostKeyChecking no
LogLevel ERROR
Port 20002 #git ssh 对外开放的端口
```
- 介绍
- 从这里开始
- 注册
- 登陆
- 云帮界面
- 功能介绍
- 新增应用
- 从镜像
- 从源码
- 应用市场
- 应用框架
- 我的应用
- 界面介绍
- 应用控制台
- 概览
- 依赖
- 监控
- 日志
- 设置
- 费用
- 端口
- 存储
- 扩容
- 总览
- 团队
- 财务中心
- 帐户充值
- 应用扣费
- 批量续费
- 语言支持
- 概述
- Java
- java-maven
- java-war
- java-jar
- web程序部署
- 使用Webapp Runner部署
- 使用Jetty Runner部署
- 示例代码
- gradle
- Scala
- play
- Ruby
- 语言支持
- ruby应用部署
- Rails 应用概述
- 部署Rails3.x应用
- 使用Puma 部署 Rails 应用
- 示例代码
- Python
- 语言支持
- Web框架支持
- 示例代码
- PHP
- 平台特性
- 语言支持
- 运行环境设置与调优
- 部署ThinkPHP框架程序
- 示例代码
- Go
- 语言支持
- 部署Beego等框架程序
- 示例代码
- Node.JS
- 语言支持
- 示例代码
- Html
- 语言支持
- 示例代码
- Dockerfile
- 语言支持
- 示例代码
- 相关文档
- Procfile
- Cron计划任务
- 参考知识
- 好雨Gogs使用说明
- Artifactory对接本地仓库
- 好雨如何对接Git Server
- Git使用技巧
- 服务框架支持
- dubbo
- springcloud
- 技术支持