崬城衞 发表于 2018-1-11 10:15:18

在gitlab上setup CI

安装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
  

  具体原因还要再研究一下。
页: [1]
查看完整版本: 在gitlab上setup CI