背景介绍
随着devops的越来越火,CI(Continuous Integration)、CD(continuous Deployment)越来越流行,有规模的公司都会有一套持续集成的环境。比较主流的开源的组件如jenkins。提供github开源项目的CI组件travis。笔者这里介绍的是gitlab ci,gitlab8.0之后提供了自身的CI功能,这使得配置变得简单。
概念介绍
- gitlab server:gitlab的基础环境,比如你的代码需要提交到这里,它可以集成ci,运行runner
- gitlab ci:ci默认是随gitlab-server一起安装的。
- gitlab runner:每一个项目要指定自己的任务执行,这个任务相当于runner,当然也可以使用公共的runner。
为什么使用docker
docker的概念这里不赘述,之所以使用,当然是应为它简单,举个例子,如果你自己安装一个gitlab,你要安装gitlab依赖的redis、postgresql等环境,docker会打包安装好。想想这是一件多么简单的事情。
安装步骤
linuxbrew
作为mac的用户,homebrew是必不可少的工具,那么像centos的系统有没有类似的工具,这里推荐linuxbrew,使用方式和homebrew一样,官网:http://linuxbrew.sh/
- 安装
1 | sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)" |
- 环境设置
1 | test -d ~/.linuxbrew && PATH="$HOME/.linuxbrew/bin:$HOME/.linuxbrew/sbin:$PATH" |
安装docker
就是这么简单!!!等待安装完成就好。
1 | brew install docker |
检查是否成功
1 | docker version |
安装gitlab&gitlab runner
安装之前查看image
1 | docker search gitlab |
安装
1 | docker pull gitlab |
启动gitlab
官网:https://docs.gitlab.com/omnibus/docker/
1 | sudo docker run --detach \ |
192.168.1.201是你本机的ip,注意不要写localhost或者127.0.0.1
/home/w是你本地映射docker环境的文件,如果不存在会创建。
配置端口映射
1 | vim /home/w/gitlab/config/gitlab.rb |
1 | external_url 'http://192.168.1.201:8001' |
1 | # (imageId通过docker ps -a查看) |
注册gitlab-runner
官网:https://docs.gitlab.com/runner/install/docker.html
1 | docker run --rm -t -i -v /home/w/gitlab-runner/config:/etc/gitlab-runner --name gitlab-runner gitlab/gitlab-runner register |
这里会一步一步提示需要的信息,详情见官网,
如果是specific runner 则token在项目下的ci页面内
如果是共享的runner,则token在管理员的runner配置内Admin-Area-> Overview -> Runners
也就是可以注册多个runner,name不同即可。
1 | docker run --rm -t -i -v /home/w/gitlab-runner/config:/etc/gitlab-runner --name gitlab-runner2 gitlab/gitlab-runner register |
启动gitlab-runner
1 | docker run -d --name gitlab-runner --restart always \ |
现在可以部署你自己的项目到gitlab了!