Ubuntu Docker 安裝和配置 GitLab CI 持續集成


相關文章:

目的:在 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 腳本構建自定義鏡像,然后在服務器上拉取並創建相應容器,最后啟動容器,完成發布和部署。

參考資料:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM