GitLab CI/CD關鍵詞(四):指定runner tags,鏡像image,運行條件when

      網友投稿 3559 2025-03-31

      簡介

      本篇文章介紹三個關鍵詞,用于指定runner的tags,使用鏡像來構建運行作業,以及規定合適觸發作業的when關鍵詞。這些都是非常使用的基礎關鍵詞。對于我們編寫流水線非常有幫助。

      下面為大家詳細介紹。

      指定runner tags

      tags是用于指定作業運行的runner,開發者在注冊runner時,會指定runner的tag,這是一個逗號分割的列表,在注冊后開發者也可以在Gitlab上進行修改。

      假如一個runner的tag為[Sona, Galio],那么如果作業要使用該runner運行腳本的話可以這樣寫

      GarenJob: script: echo 'The only limit to our realization of tomorrow will be our doubts of today.' tags: - Sona - Galio

      如果runner有二個tag,你可以指定一個tag,也可以指定2個。如果指定一個,并且該tag在多個runner中都存在,那么作業會在二個runner隨機調度到其中一個。為了確保指定到固定的runner,建議在注冊runner時使用不同的tag,并且在作業下指定tag時,列出runner的所有tag。

      在作業上tags并不是必填項,如果一個作業沒有配置tags那么該作業回去尋找該項目下,所有可以使用的runner,并且runner配置為不必指定tag也可以調用。

      鏡像image

      如果你的流水線要使用Docker鏡像來運行,或提供基礎服務,那么使用關鍵詞image將變的很簡單。

      以下是一個使用image的例子

      InstallJob: image: node:latest script: npm install

      上面的例子就是使用nodejs的官方鏡像node來進行項目構建的。注意image在shell執行器下是不生效的。即使主機上已經安裝了Docker。

      image的值可以是一個完整的鏡像地址,如registry.example.com/my/image:latest。

      image除了指定鏡像名外,還可以重置鏡像的入口即 entrypoint

      重置鏡像入口該配置對于一些二進制文件鏡像非常有用,比如 bitnami/kubectl 可以參考一下我的這篇文章

      使用Gitlab CI/CD部署應用到Kubernetes集群的方案

      deploy_k8s: image: name: bitnami/kubectl entrypoint: [""] script: - kubectl version

      如果你要使用一個私有倉庫的鏡像,那么首先需要配置Docker授權,可以使用靜態授權,即賬號密碼登錄私有庫,

      也可以使用Docker的秘鑰。

      一般情況下使用的鏡像都是公開的,但也并不排除有需要使用私有鏡像的情況。這里介紹一下如何使用私有鏡像。

      使用下面命令生成秘鑰

      echo -n "my_username:my_password" | base64

      my_username 與my_password都是登錄私有鏡像庫的賬號和密碼。

      執行后會生成一個base64的字符串。

      然后創建一個變量DOCKER_AUTH_CONFIG

      DOCKER_AUTH_CONFIG變量的值為

      { "auths": { "<私有鏡像的域名>": { "auth": "上面生成的base64的字符串" } } }

      然后就可以放心大膽地使用私有鏡像了。

      還有一種方式是直接在GitLab Runner的配置文件里這樣寫

      environment = ["DOCKER_AUTH_CONFIG={\"auths\":{\"registry.example.com:5000\":{\"auth\":\"bXlfdXNlcm5hbWU6bXlfcGFzc3dvcmQ=\"}}}"]

      更多方式可以查看這個文檔

      運行條件when

      關鍵詞when是用于配置滿足何種條件下作業才會運行。

      一共有6個值

      on_success (默認): 當前一階段的所有作業運行成功后,才會運行該作業

      manual: 手動觸發作業

      always: 不管前面作業的狀態如何,都會運行

      on_failure: 當前面有一個作業運行失敗才會運行該作業

      delayed:延遲運行該作業

      never: 絕不運行該作業

      使用案例

      stages: - build - cleanup_build - test - deploy - cleanup build_job: stage: build script: - make build cleanup_build_job: stage: cleanup_build script: - cleanup build when failed when: on_failure test_job: stage: test script: - make test deploy_job: stage: deploy script: - make deploy when: manual cleanup_job: stage: cleanup script: - cleanup after jobs when: always

      當build_job 失敗后,cleanup_build_job 作業將會運行

      GitLab CI/CD關鍵詞(四):指定runner tags,鏡像image,運行條件when

      在流水線結束時總是執行cleanup_job 作業,無論前面的作業是成功或失敗

      要想執行deploy_job 作業,必須在GitLab UI上點擊運行才可以,因為它是一個手動運行作業。

      參考資料

      https://docs.gitlab.com/ee/ci/yaml/#image

      https://docs.gitlab.com/ee/ci/docker/using_docker_images.html

      https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#override-the-entrypoint-of-an-image

      DevOps Git

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel打不開怎么辦?修復excel表格的兩種方法(excel表格損壞無法打開,修復了也不行)
      下一篇:辦公表格軟件免費看漫畫(電腦辦公漫畫)
      相關文章
      亚洲精品自在线拍| 亚洲精品无码不卡在线播放HE| 亚洲精品一品区二品区三品区| 亚洲精品国自产拍在线观看| 久久亚洲中文无码咪咪爱| 97久久国产亚洲精品超碰热| 亚洲欧洲另类春色校园小说| 亚洲成人免费电影| 亚洲国产精品久久人人爱| 亚洲性一级理论片在线观看| 亚洲高清无在码在线电影不卡| 久久丫精品国产亚洲av不卡| 亚洲韩国—中文字幕| 亚洲日本一区二区三区| 亚洲午夜免费视频| 亚洲精品在线播放视频| 亚洲精品第五页中文字幕| 亚洲欧洲精品在线| 亚洲免费在线视频观看| 国产99在线|亚洲| 亚洲欧美国产日韩av野草社区| 亚洲Av永久无码精品黑人| 亚洲精品天堂无码中文字幕| 亚洲av中文无码乱人伦在线观看| 亚洲暴爽av人人爽日日碰| 亚洲成A人片在线观看无码3D | 国产精品亚洲五月天高清| 成人精品国产亚洲欧洲| 亚洲国产精品激情在线观看| 亚洲性久久久影院| 亚洲精品国产字幕久久不卡| 久久国产精品亚洲综合| 亚洲视频一区二区在线观看| 亚洲国产成人手机在线电影bd| 亚洲综合久久精品无码色欲 | 亚洲色图综合网站| 亚洲成a人片在线观看播放| 精品久久亚洲中文无码| 亚洲第一综合天堂另类专| 精品国产亚洲一区二区三区在线观看 | 亚洲日韩一区精品射精|