写点什么

以容器的方式运行极狐 GitLab Runner

作者:极狐GitLab
  • 2021 年 12 月 08 日
  • 本文字数:2156 字

    阅读完需:约 7 分钟

以容器的方式运行极狐GitLab Runner

在前面的文章中提到了,用安装包的方式在 Ubuntu 上安装极狐 GitLab Runner。详细内容可以查看文章在 Ubuntu 上安装使用极狐 GitLab Runner。今天我们来演示用容器的方式运行极狐 GitLab Runner。这种方式与操作系统无关,只要有 Docker 环境即可。


以容器的方式运行极狐 GitLab Runner


容器运行的极狐 GitLab Runner 实例是对 gitlab-runner 命令的一个封装。使用起来就像直接使用 gitlab-runner 命令一样。

首先需要确保自己的环境已经安装了 docker 并且 docker 是运行正常的,可以用 docker versiondocker info 命令来确认:


$ docker versionClient: Docker Engine - Community Version:           20.10.11 API version:       1.41 Go version:        go1.16.9 Git commit:        dea9396 Built:             Thu Nov 18 00:37:06 2021 OS/Arch:           linux/amd64 Context:           default Experimental:      true
Server: Docker Engine - Community Engine: Version: 20.10.11 API version: 1.41 (minimum version 1.12) Go version: go1.16.9 Git commit: 847da18 Built: Thu Nov 18 00:35:15 2021 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.12 GitCommit: 7b11cfaabd73bb80907dd23182b9347b4245eb5d runc: Version: 1.0.2 GitCommit: v1.0.2-0-g52b36a2 docker-init: Version: 0.19.0 GitCommit: de40ad0
复制代码


接着用如下命令就可以创建一个 gitlab-runner 容器:


$ docker run -d --name gitlab-runner-docker \         --restart always -v $PWD:/etc/gitlab-runner \         -v /var/run/docker.sock:/var/run/docker.sock \         gitlab/gitlab-runner:latest9f005be60f1a7389f2246b6be230ec9898c6ec688cdeb6d036ec99c86e9f264a
复制代码


接着,可以进入启动的容器进行一番查看:


$ docker exec -it 9f005be60f1a shgitlab-runner --versionVersion:      14.5.0Git revision: f0a95a76Git branch:   14-5-stableGO version:   go1.13.8Built:        2021-11-21T16:54:22+0000OS/Arch:      linux/amd64
复制代码


可以看到容器里面已经安装了 gitlab-runner。接下来可以进行 Runner 注册。


极狐 GitLab Runner 注册


执行 gitlab-runner register 命令,输入需要的信息即可完成 Runner 的注册。


$ root@9f005be60f1a:/# gitlab-runner registerRuntime platform                                    arch=amd64 os=linux pid=68 revision=f0a95a76 version=14.5.0Running in system-mode.
Enter the GitLab instance URL (for example, https://gitlab.com/):https://jh-xiaomage.gitlab.cnEnter the registration token:sFV-HEkLC_NgH2vLALfGEnter a description for the runner:[9f005be60f1a]: container-runnerEnter tags for the runner (comma-separated):docker,runnerRegistering runner... succeeded runner=sFV-HEkLEnter an executor: custom, docker, shell, ssh, virtualbox, docker-ssh, parallels, docker+machine, docker-ssh+machine, kubernetes:dockerEnter the default Docker image (for example, ruby:2.6):docker:20.10.7-dindRunner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
复制代码


在极狐 GitLab Runner 配置页面可以看到多了一个 Runner,tagdockerrunner



名为 #5(65dxPiun) 的 Runner 是用安装包安装注册的 Runner。


极狐 GitLab Runner 的使用


依旧使用在 Ubuntu 上安装使用极狐 GitLab Runner中的 Demo,现在让容器化运行的 Runner 来完成 CI/CD Pipeline 的执行。可以在 .gitlab-ci.ymljob 中增加 tags 字段,如果 tags 的内容和 Runner 的 tag 相匹配,则此 Runner 被分配用来执行此次 CI/CD Pipeline。文件内容如下:


services:  - docker:20.10.7-dind
stages: - build
build: stage: build tags: - docker services: - docker:20.10.7-dind script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - docker build -t $CI_REGISTRY_IMAGE:2.0.0 . - docker push $CI_REGISTRY_IMAGE:2.0.0
复制代码


查看 CI/CD Pipeline 构建日志:



可以看到此次构建是用容器化的 Runner 来执行的(如图中红色方框所示)。

如果要查看 Runner 的 log,可以找到 Runner 对应的容器,用 logs 命令查看即可:


$ docker ps -aCONTAINER ID   IMAGE                                         COMMAND                  CREATED              STATUS                          PORTS           NAMES96950613c51a   ca749f2062c4                                  "dockerd-entrypoint.…"   About a minute ago   Up About a minute               2375-2376/tcp   runner-x8mctw4w-project-2-concurrent-0-952d88e4160ffe6a-build-2
$ docker logs -f 96950613c51a
复制代码


日志结果如下:



这和在 Pipeline 控制台中的输出是一致的,大家自行查看即可。

发布于: 23 小时前阅读数: 6
用户头像

极狐GitLab

关注

开源开放,人人贡献 2021.05.19 加入

开放式一体化DevOps平台,助力行业高速协同增长!

评论

发布
暂无评论
以容器的方式运行极狐GitLab Runner