前置步骤:DevOps GitLab CICD 实践1——GitLab 部署html
文档地址git
虽然有官方指引,但我的感受指引的不够清晰,致使初次配置可能频繁失败docker
Run GitLab Runner in a container
This is how you can run GitLab Runner inside a Docker container.bash
General GitLab Runner Docker image usage
GitLab Runner Docker images (based on Ubuntu or Alpine Linux) are designed as wrappers around the standard
gitlab-runner
command, like if GitLab Runner was installed directly on the host.appThe general rule is that every GitLab Runner command that normally would be executed as:curl
gitlab-runner [Runner command and options...] 复制代码
can be executed with:ide
docker run [chosen docker options...] gitlab/gitlab-runner [Runner command and options...] 复制代码
For example, getting the top-level help information for GitLab Runner command could be executed as:gitlab
docker run --rm -t -i gitlab/gitlab-runner --help NAME: gitlab-runner - a GitLab Runner USAGE: gitlab-runner [global options] command [command options] [arguments...] VERSION: 10.7.0 (7c273476) (...) 复制代码
In short, the
gitlab-runner
part of the command is replaced withdocker run [docker options] gitlab/gitlab-runner
, while the rest of Runner’s command stays as it is described in the register documentation. The only difference is that thegitlab-runner
command is executed inside of a Docker container.postDocker image installation and configuration
Install Docker first:性能
curl -sSL https://get.docker.com/ | sh 复制代码
You need to mount a config volume into the
gitlab-runner
container to be used for configs and other resources:docker run -d --name gitlab-runner --restart always \ -v /srv/gitlab-runner/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:latest 复制代码
Tip: On macOS, use
/Users/Shared
instead of/srv
.Or, you can use a config container to mount your custom data volume:
docker run -d --name gitlab-runner-config \ -v /etc/gitlab-runner \ busybox:latest \ /bin/true 复制代码
And then, run the Runner:
docker run -d --name gitlab-runner --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ --volumes-from gitlab-runner-config \ gitlab/gitlab-runner:latest 复制代码
Register the runner you just launched by following the instructions in the Docker section of Registering Runners. The runner won’t pick up any jobs until it’s registered.
能够经过Gitlab管理员帐号获取,也能够让每个用户自行配置
进入任意一个仓库的设置中,查看CICD配置
准备注册专用Runner令牌
进入总设置页面,配置全局Runner令牌
因为Runner通常运行复杂构建、打包任务,推荐配置在性能、带宽更大的机房
$ curl -sSL https://get.docker.com/ | sh
$ systemctl start docker
复制代码
能够根据须要选择注册Runner类型
同时,为了方便配置,使用单行注册而且关闭交互
命令说明:
-v
挂载的目的是为了将注册后的配置文件持久化,用于运行容器--rm
指定容器运行结束后自动删除中止的容器-it
指定使用命令行交互方式运行,便于查看注册结果$ docker run --rm -it \
-v /www/wwwroot/gitlab/srv/gitlab-runner/config:/etc/gitlab-runner \
gitlab/gitlab-runner:alpine-v11.8.0 register \
--non-interactive \
--executor "docker" \
--docker-image docker:stable \
--url "Gitlab URL" \
--registration-token "令牌" \
--description "描述" \
--tag-list "标签1,标签2" \
--run-untagged \
--docker-privileged \
--locked="false"
复制代码
注册成功提示
此时管理面板显示新的Runner已经注册
挂载本地配置信息并启动Runner
$ docker run -d --name gitlab-runner --restart always \
-v /www/wwwroot/gitlab/srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:alpine-v11.8.0
复制代码
此时可见Runner已经保持和Gitlab的联系