安装gitlab runner
docker pull gitlab/gitlab-runner
启动gitlab runner
docker run -d --name gitlab-runner --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:latest
配置gitlab runner
docker exec -it gitlab-runner gitlab-runner register
输入gitlab ci地址,比如:http://gitlab.com/ci
输入token:可以在gitlab的admin area->overview->runners里面找到
输入描述信息
输入tag
输入类型:Docker
输入镜像:Ruby2.1
或者直接用参数方式传入:
docker exec -it gitlab-runner gitlab-runner register --url "http://gitlab.com/ci" --registration-token "xxxxx" --description "dotnet" --executor "docker" --docker-image microsoft/dotnet
配置CI脚本
在gitlab project首页,有选项:setup CI,点击之后会建立.gitlab-ci.yml文件,
简单输入测试脚本:
image: registry.cn-hangzhou.aliyuncs.com/cjx/tutorial build: stage: build script: - dotnet restore - dotnet run
完成之后,Runner会自动跑脚本。
遇到的坑:
一开始有自定义gitlab的hosts:gitlab.cjx.com,在用runner跑测试脚本时,即使在runner启动的时候添加了host,也会报 port 80 : connection refused错误,貌似container里面的runner根本就没有解析这个hosts文件,最后把hosts去掉全部用IP访问搞定了。
docker run --name gitlab-runner --restart always --add-host gitlab.cjx.com:192.168.30.129 -v /var/run/docker.sock:/var/run/docker.sock -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:latest
具体原因还要再研究一下。