这是我们使用GitLab和Rancher构建CI/CD流水线系列教程的第二部分。第一部分的内容介绍了如何部署、配置和确保GitLab在Rancher的运行。这一部分中,我们将介绍如何使用GitLab CI Multi-Runner构建容器,以及如何使用GitLab容器registry配置项目。除此之外,我们还将涉及如何用GitLab CI建立容器并部署到Rancher上。
使用GitLab CI Multi-Runner构建容器
GitLab CI是用于持续集成和持续交付的强大工具。它需要和Rancher配合使用,这里我们将部署一个执行作业的runner。
运行Runner
部署runner有好几种方式,不过考虑到我们的目的是要从自己的存储库中建立容器,我们将运行一个可以直接访问/var/run/docker.sock的Docker容器,来构建和自身同步的镜像。
- 在Rancher中,向你的Gitlab栈添加一个服务。
- 使用以下配置进行设置:
- Name: runner01
- Image: gitlab/gitlab-runner
- Console: None
- Volumes:
/var/run/docker.sock:/var/run/docker.sock
runner01-etc:/etc/gitlab-runner
容器运行时,它将在/etc/gitlab-runner中创建一个默认配置,该配置对应我们已经建立连接的卷。接下来,用你的Gitlab实例注册runner。
下面操作中,我设置的配置适用于基本的runner,它可以搭建任意作业。你还可以将runner限制在指定的存储库中或是使用其他的镜像。这里你可以阅读GitLab的文档来了解是最适合你的环境的选项。
配置Runner
- 在容器中执行shell
- 运行gitlab-ci-multi-runner register开始注册
- 按照提示信息输入,参考下列示例(答案是粗体字)
root@4bd974b1c799:/# gitlab-ci-multi-runner register
Running in system-mode.
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
https://git.example.com
Please enter the gitlab-ci token for this runner:
DGQ-J7n0tR33LXB3z_
Please enter the gitlab-ci description for this runner:
4bd974b1c799]: runner01
Please enter the gitlab-ci tags for this runner (co