1. 添加 gitlab-runner yum源
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash
  1. 安装gitlab-runner
    yum install gitlab-ci-multi-runner
  2. 配置及安装
    进入gitlab项目中,点击setting-ci/cd,展开runner,可以看到配置gitlab-runner的url与token。
    4.默认运行程序的用户转换成root(权限高,可以很好的执行操作步骤)
ps aux|grep gitlab-runner  #查看当前runner用户

sudo gitlab-runner uninstall  #删除gitlab-runner

gitlab-runner install --working-directory /home/gitlab-runner --user root

gitlab-runner restart

ps aux|grep gitlab-runner #再次执行会发现–user的用户名已经更换成root了
5.配置gitlab-runner 的 executors 为 docker的操作


daemon默认监听的是/var/run/docker.sock这个文件,所以docker客户端只要把请求发往这里,daemon就能收到并且做出响应

宿主机的/var/run/docker.sock被映射到了容器内,有以下两个作用:

在容器内只要向/var/run/docker.sock发送http请求就能和Docker Daemon通信了,可以做的事情前面已经试过了,官方提供的API文档中有详细说明,镜像列表、容器列表这些统统不在话下;

如果容器内有docker文件,那么在容器内执行docker ps、docker port这些命令,和在宿主机上执行的效果是一样的,因为容器内和宿主机上的docker文件虽然不同,但是他们的请求发往的是同一个Docker Daemon;


sudo gitlab-runner register -n \
   --url http://172.16.100.133:8090/ \
   --registration-token G16LftV6hZFcQc1z7364 \
   --executor docker \
   --description "docker" \
   --tag-list "docker" \
   --docker-image "docker:19.03" \
   --docker-volumes /var/run/docker.sock:/var/run/docker.sock

6,执行cicd-demo的go程序,记得选择tag,不然不知道你的程序在那个runner上执行

后来测试发现做java程序和go差不多,最省事的方法就是在dockerfile中做一些构建,直接在gitlab-runner中做docker命令,打成docker images

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐