相關文章:
目的:在 Ubuntu 服務器上,使用 Docker 安裝和配置 GitLab Runner,搭建 GitLab CI 持續集成環境。
服務器版本 Ubuntu 16.04 LTS。
安裝命令:
$ 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
參數說明:
--d: 設置容器后台運行--name:容器名稱--restart always:每次啟動容器就重啟 gitlab-runner--v: 共享目錄掛載(如果是 Mac OSX 系統,需要把/srv改為/Users/Shared)
安裝好之后,可以使用docker ps查看容器是否在運行,接着我們進入容器:
$ docker exec -it gitlab-runner gitlab-runner register
gitlab-runner register是進入gitlab-runner容器的執行命令,用於注冊和初始化gitlab-runner。
下面是我的示例配置:
我們也可以編輯vim /srv/gitlab-runner/config/config.toml,手動修改配置:
concurrent = 1
check_interval = 0
[[runners]]
name = "my-runner"
url = "http://40.125.206.47"
token = "b6ac044b57cbb22073b95dd384e517"
executor = "docker"
[runners.docker]
tls_verify = false
image = "microsoft/dotnet:latest"
privileged = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
[runners.cache]
gitlab-ci token需要用root賬號登陸 GitLab,才能看到(/admin/runners):
配置好之后,我們就可以在 GitLab 中看到 GitLab Runner 了,示例:
然后點擊修改,添加我們需要應用 GitLab Runner 的 Project 項目,示例(點擊Enable啟用):
下面我們就可以為hwapp項目(hwapp使用 ASP.NET Core 2.0 創建),添加.gitlab-ci.yml配置文件了(用於執行 CI 的腳本文件),簡單配置(用於還原程序包和構建項目):
stages:
- build
build_job:
stage: build
script:
- dotnet restore
- dotnet build
關於.gitlab-ci.yml的語法,可以看一下之前的文章,或者查看:
把.gitlab-ci.yml提交到 GitLab,然后我們就可以看到執行結果了:
執行是失敗的,我們點擊進入詳情,就可以看到整個的執行過程:

microsoft/dotnet:latest是我們一開始配置 GitLab Runner 填寫的 Docker Image,並且 Runner executor 選擇的是docker,也就是說 GitLab Runner 的構建環境是docker,並且默認使用的鏡像是microsoft/dotnet:latest,由此再進行創建相應容器,並在其容器中執行 CI 腳本,從上面的執行過程,我們就可以看出來了。
需要注意的是,GitLab Runner 配置的 Docker Image,最好是我們自定義構建的 Image 鏡像,這樣我們執行 CI 腳本環境,會更加豐富。
根據錯誤信息,我們修改下對應代碼,重新提交到 GitLab,可以看到這次是構建成功的:

大概就記錄這些,接下來還需要繼續完善,比如:
- GitLab CI & ASP.NET Core 2.0 發布和部署:使用 CI 腳本編譯程序,然后將編譯后的文件傳輸到服務器上,最后運行程序,完成發布和部署。
- GitLab CI & ASP.NET Core 2.0 & Docker 發布和部署:項目中添加
Dockerfile文件,使用 CI 腳本構建自定義鏡像,然后在服務器上拉取並創建相應容器,最后啟動容器,完成發布和部署。
參考資料:
