代码上传到 Gitlab,通过设置可以实现自动部署,非常的方便。
背后完成这一切工作的关键工具叫做 Gitlab Runner,本文介绍这个工具。

整个工作流程大致就是上面这张图,概括如下,具体操作细节会在后面详细介绍。
步骤1:在 Gitlab 上创建一个新项目 gitlab-runner-demo;
步骤2:在 Gitlab 上创建这个项目的 token,token 可以理解为钥匙,有了 token 你在天涯海角都可以找到 gitlab-runner-demo 这个项目;
步骤3:在我们自己的服务器上安装 Gitlab Runner 软件,就把它看成一个普通软件,和你电脑里安装的微信、QQ 一样;
步骤4:就像微信软件可以用来聊天,网易云音乐软件可以听歌,Gitlab Runner 软件可以创建 runner,创建的时候需要用到步骤2的 token,这样我们自己的服务器就和 Gitlab 关联起来了。
步骤 4 创建的 runner 可以把它看成是 24 小时不休息的工人👷🏻♂️,一直监视着 Gitlab 上 gitlab-runner-demo 这个项目,一旦有人提交了代码,runner 就要开始干活了,具体干什么活,就看项目根目录下 .gitlab-ci.yml 这个文件里需要做什么了。
如果项目根目录下没有 .gitlab-ci.yml 文件,那么 runner 就什么也不做。关于 .gitlab-ci.yml 文件,我们下一篇文章会详细介绍。
创建项目对应的 token 对应 概述中的步骤2。

tags 会在 .gitlab-ci.yml 文件中用到。在你不了解 tags 概念的前提下,前端项目就填 frontend,后端项目就填 backend。
如果要添加多个 tags,每个 tag 之间使用逗号隔开。

将 Step1 也就是下图中红框内容保存到本地,这就是 gitlab-runner-demo 这个项目对应的 token。
一定要保存一下,这个页面关掉之后就找不到 token 了。

安装 Gitlab Runner 软件对应 概述中的步骤3。
使用 Docker 安装 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
参数说明:
验证是否安装成功,输入 docker ps 看到如下容器说明安装成功。
$ docker ps
CONTAINER ID   IMAGE                         COMMAND                   CREATED        STATUS       PORTS    NAMES
53e4c01c021c   gitlab/gitlab-runner:latest   "/usr/bin/dumb-init …"   2 hours ago    Up 2 hours            gitlab-runner
注册 runner 对应 概述中的步骤4。
运行如下命令进入容器内部:
$ docker exec -it gitlab-runner /bin/bash
使用 gitlab-runner 命令注册 runner,这个命令是在前面的 【创建项目对应的 token】 中生成的。
$ gitlab-runner register  --url https://gitlab.com  --token glrt-DuvS8Aiymhb5Mj13xFVwN286MQpwOjE4enJtcwp0OjMKdTo1bTRkeRg.01.1j0un58ik

执行命令时会有一些交互问题,解释一下:
返回 Gitlab 页面,点击 Settings -> CI/CD -> Runners,可以看到我们刚才创建的 runner,并且是绿色的,说明注册成功。
我这里已经注册了很多个 runner,每个 runner 有不同的 tags,你想要自动部署在哪个 runner 上运行,就指定对应的 tag,这个在 .gitlab-ci.yml 文件中指定,下一篇文章会详细介绍。

↶ 返回首页 ↶