日期:2018-12-14
作者:謝雪晴
搭建GitLabRunner和Docker服務端流程
環境
- 一臺裝有ubuntu16.04的DELL機(當前機器編號107)
- 固定IP地址(當前固定IP:192.168.16.212)
- 注意:安裝runner可能需要翻牆,故需要安裝翻牆工具如lanten
步驟
-
更新和安裝一些必要軟件
sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common
-
下載runner的二進制文件
# 查看系統信號,當前爲x86-64 uname -a # Linux x86-64 sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64 # Linux x86 sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386 # Linux arm sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm
-
設置權限
sudo chmod +x /usr/local/bin/gitlab-runner
-
若使用docker 下載docker
# 下方命令若不行,需要加上sudo curl -sSL https://get.docker.com/ | sh # 安裝成功後若作爲一個non-root使用,需要按提示運行命令如: sudo usermod -aG docker pi
若有權限問題解決Docker啓動Get Permission Denied
# To run docker without super user: sudo groupadd docker sudo gpasswd -a ${USER} docker newgrp docker sudo service docker restart docker ps
-
創建一個gitlab ci 用戶
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
-
runner服務器安裝和運行
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner sudo gitlab-runner start
-
- 以管理員身份登錄gitlab進入項目,並在seting->CI/CD->Runners settings中查看URL 和 token
- 註冊.敲入如下命令,按照提示輸入
sudo gitlab-runner register
- 以管理員身份登錄gitlab進入項目,並在seting->CI/CD->Runners settings中查看URL 和 token
-
修改runner配置,將
privileged = false
改爲privileged = true
# if runner install successfully , /etc/gitlab-runner/config.toml exist sudo ls /etc/gitlab-runner/ # modify the above file sudo gedit /etc/gitlab-runner/config.toml
-
若讓gitlab服務器從倉庫拿image而非本地,執行如下命令(由於現在docker服務器現在在本地,故跳過該步驟)
修改/etc/gitlab-runner/config.toml,在[runner.docker]下添加pull_policy = “always” -
搭建私有倉庫
- 運行registry
docker run -d -p 5000:5000 --restart=always --name registry registry
- 修改文件
-
舊版docker(如17.02),即文件/etc/default/docker存在,且內容不爲空。
修改該文件中的變量DOCKER_OPTS。
命令如下:
sudo gedit /etc/default/docker
內容如下:
DOCKER_OPTS="–registry-mirror=https://registry.docker-cn.com --insecure-registry=192.168.16.212:5000"
192.168.16.212爲你的Docker倉庫IP -
新版docker(如18.09),即文件/etc/default/docker不存在.root權限下執行如下命令,下方命令解決了docker pull報錯問題
echo '{ "insecure-registries":["xxx.xxx.xxx.xxx:5000"] }' > /etc/docker/daemon.json systemctl restart docker
注意:/etc/docker/daemon.json不存在,屬於正常情況
- 運行registry
結果
- 在項目seting->CI/CD->Runners settings中可看到Runners activated for this project中有在第7步添加的runner
- 可以將docker image上傳至該服務器,並能從該服務器下載image
- 當ci使用了服務器上的docker時可正常運行