Linux内核官方建议3.10以上。
uname -r
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
如果提示接受GPG密钥,请验证指纹是否与060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
匹配,如果匹配,请接受。
(1) 查看可用版本有哪些
sudo yum list docker-ce --showduplicates | sort -r
(2) 选择一个版本并安装:yum install docker-ce-版本号
sudo yum -y install docker-ce-18.03.1.ce
(3) 启动docker并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
(4) 提供运行hello world镜像验证docker引擎是否已正确安装
sudo docker run hello-world
# Linux x86-64
sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64"
# Linux x86
sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386"
# Linux arm
sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm"
# Linux arm64
sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm64"
# Linux s390x
sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-s390x"
我当前虚拟机为centos 7,选择的Linux x86-64
sudo chmod +x /usr/local/bin/gitlab-runner
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
如果提示命令 gitlab-runner command not found 需要配置环境
添加软链接
ln -s -f /usr/local/bin/gitlab-runner /usr/bin/gitlab-runner
(1) 运行以下命令
sudo gitlab-runner register
(2) 输入GitLab实例的URL
(3) 输入获得的用于注册runner的token
(4) 输入runner的说明。可以稍后在GitLab用户界面中更改此值。
(5) 输入与runner关联的tag,以逗号分隔。可以稍后在GitLab用户界面中更改此值。
(6) 输入runner executor。此处我输入docker
(需要提前安装docker)。
(7) 如果输入docker作为executor,则会要求你为未在.gitlab-ci.yml中定义映像的项目使用默认映像。输入ubuntu:20.04
(1) 使用本地系统volume装载启动Runner容器
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
(2) 使用docker volumes启动Runner容器
1) 新建docker volume
docker volume create gitlab-runner-config
2) 使用我们刚刚创建的volume启动GitLab Runner容器
docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v gitlab-runner-config:/etc/gitlab-runner \
gitlab/gitlab-runner:latest
我是使用本地系统volume装载启动Runner容器。
(1) 根据装载类型运行register命令,以下根据情况二选一
1) 对于本地系统volume装载
docker run --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register
2) 对于docker volume装载
docker run --rm -it -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner:latest register
我是使用本地系统volume装载。
(2) 输入GitLab实例的URL
(3) 输入获得的用于注册runner的token
(4) 输入runner的说明。可以稍后在GitLab用户界面中更改此值。
(5) 输入与runner关联的tag,以逗号分隔。可以稍后在GitLab用户界面中更改此值。
(6) 输入runner executor。此处我输入docker
(需要提前安装docker)。
(7) 如果输入docker作为executor,则会要求你为未在.gitlab-ci.yml中定义映像的项目使用默认映像。输入ubuntu:20.04
在gitlab中记得编辑runner,勾选Run untagged jobs。
之前安装的时候使用的是Linux下安装gitlab-runner + executor:docker,当时没有注册一个gitlab ci用户,注册之后runner未被激活(runner前有个黑色感叹号),我当时运行sudo gitlan-runner verify
(此命令检查已注册的runner是否可以连接到gitlab,但不会验证gitlab runner服务是否正在使用这些runner)后显示被激活了,以为runner已经可以使用了。当我写了一个很简单的.gitlab-ci.yml测试提交后,发现Pipeline并未通过,一直处于pending状态。
后请教后得知需要查看日志查找问题,运行journalctl -u gitlab-runner -f
,得知丢失文件夹/home/gitlab-runner
,gitlab-runner服务启动失败,查看后确实没有找到该文件夹,于是在另一个虚拟机上尝试使用docker安装gitlab-runner + executor:docker,按官方步骤安装注册成功。后继续在第一次安装的虚拟机上卸载gitlab-runner重新按照官方步骤安装注册,成功。
附:卸载gitlab-runner
# 停止服务
gitlab-runner stop
# 取消随机启动
chkconfig gitlab-runner off
# 卸载服务
gitlab-runner uninstall
# 清理文件
rm -rf /etc/gitlab-runner
rm -rf /usr/local/bin/gitlab-runner
rm -rf /usr/bin/gitlab-runner
rm -rf /etc/sudoers.d/gitlab-runner
# 删除用户
userdel -r gitlab-runner