Gitlab CI/CD 與 Docker 之間關係

更新於 發佈於 閱讀時間約 2 分鐘
raw-image

前言

上次交到 Runner 與 Executor 運作方式,今天要來講 Gitlab 與 Docker 之間運作,我們來了解一下,Gitlab 是怎麼幫我們這些指令,之後在自動化佈署的章節會使用到,實現更又效率的佈署。

Gitlab Runner 運作

在這裡你會看到特別的名詞,像是 gitlab-runner、docker+machine 還有 docker image ruby:3.1,那有些更特別的名詞會放在下個章節裡面,我們先來看 gitlab-runner 跟所謂的 ruby:3.1 image 這兩個是做什麼用的

raw-image

Gitlab-Runner

gitlab-runner 是 gitlab 用來註冊每個專案的 runner 工具,如果不知道叫 runner 可以回去看先前文章連結,每個專案可能有多個不同的 runner,比如: ssh runner、docker runner、shell runner,這些不同的 runner 我們會在下個章節提到,先講個概念。

Docker Image

我們剛才看到的 docker image ruby 3.1,代表 runner 運作的時候,有如下圖會去 docker hub 這個雲端服務,抓取 ruby 3.1 這個 image,下載下來就可以執行我們 ruby 這個程式語言指令。

raw-image

自定義下載 Image

那如果我們不想使用 ruby 這個 image,我們想要抓自己要的比如 node.js 這個 image,是否有 CI/CD 命令可以改,當然是有的我們只要在我們腳本寫上 image 這個指令,就會幫我們抓 node.js 這個 image。我們先來查詢 node 版本,我們這邊先用 node:20.9.0-alpine 這個 image。

raw-image

接下來我們寫好 image 腳本,然後 push 上去察看結果。

image: node:20.9.0-alpine

stages:
- testing

test-build:
stage: testing
before_script:
- node -v
- npm -v
- yarn -v
script:
- echo '測試打包'
only:
- main
- develop

有如下圖可以看到 Gitlab Runner 先幫我們抓 node:20.9.0-alpine 版本,也成功印出 node 版本、npm 版本和 yarn 版本。

raw-image



avatar-img
10會員
49內容數
d3.js 圖形
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Tim Bai的沙龍 的其他內容
上次我們教完公用變數與區域變數和環境變數,今天我們來講 Runner 與 Executor 之間的關係,我們之後會教大家如何自架 Gitlab 主機,以及如何使用 Gitlab-Runner,讓他們自動去跑我們想要的工作,比如: 自動佈署、自動單元測試、自動打包 Docker Image 等。 R
上次我們教完了 Gitlab CI/CD 公用變數與區域變數還可以隱藏變數,今天我們來講 CI/CD 中,還有一個是由 Gitlab 提供的環境變數,我們也可以利用這些變數,操作我們講做的事情。 GitLab CI 變數 打開 Gitlab 官方 說明文件 ,是裡是 Gitlab 提供的環境變數
上次教到 variables 如何使用公用變數與區域變數,今天來教如何將變數隱藏到別的地方,為什麼叫隱藏到別的地方? 那是因為我們有時候有些變數值不想直接寫在 .gitlab-ci.yml 檔裡面,又或者有太敏感資訊,我們想藏在 GitLab 專案設定變數裡面。 設定 GitLab 專案變數 我
上次我們教到 needs 可以來指定哪個工作完成時,才會指向下一個工作,今天我們來教 CI/CD 之 variables 變數,在 Gitlab CI/CD 中也提供環境變數、區域變數 和 公用變數讓我們操作,我們會再這裡分成三期教各位。 variables 定義規則 CI/CD 變數命名先寫一
上次我們講完了 only 操作方式,接下來我們要來講解 needs 操作方式,讓我們的 CI/CD 更加仔細,更加完整。 needs 作用 needs 可以在我們整個 CI/CD 流程,去定義在哪個工作之前做完,才會去做下一個工作,假設今天有三個工作,分別叫 "test-build"、"buil
上次我們講解了 CI/CD 的相依性,也講解了 stages 工作階段的運作,今天我們來了解 only 的作用,可以幫助我們做甚麼 only 作用 only 可以指定那些工作,只在哪個分支名運作,假設今天開了一個新分支,名子叫 feature/add_test 這樣子,接著 CI/CD 有定義四
上次我們教完公用變數與區域變數和環境變數,今天我們來講 Runner 與 Executor 之間的關係,我們之後會教大家如何自架 Gitlab 主機,以及如何使用 Gitlab-Runner,讓他們自動去跑我們想要的工作,比如: 自動佈署、自動單元測試、自動打包 Docker Image 等。 R
上次我們教完了 Gitlab CI/CD 公用變數與區域變數還可以隱藏變數,今天我們來講 CI/CD 中,還有一個是由 Gitlab 提供的環境變數,我們也可以利用這些變數,操作我們講做的事情。 GitLab CI 變數 打開 Gitlab 官方 說明文件 ,是裡是 Gitlab 提供的環境變數
上次教到 variables 如何使用公用變數與區域變數,今天來教如何將變數隱藏到別的地方,為什麼叫隱藏到別的地方? 那是因為我們有時候有些變數值不想直接寫在 .gitlab-ci.yml 檔裡面,又或者有太敏感資訊,我們想藏在 GitLab 專案設定變數裡面。 設定 GitLab 專案變數 我
上次我們教到 needs 可以來指定哪個工作完成時,才會指向下一個工作,今天我們來教 CI/CD 之 variables 變數,在 Gitlab CI/CD 中也提供環境變數、區域變數 和 公用變數讓我們操作,我們會再這裡分成三期教各位。 variables 定義規則 CI/CD 變數命名先寫一
上次我們講完了 only 操作方式,接下來我們要來講解 needs 操作方式,讓我們的 CI/CD 更加仔細,更加完整。 needs 作用 needs 可以在我們整個 CI/CD 流程,去定義在哪個工作之前做完,才會去做下一個工作,假設今天有三個工作,分別叫 "test-build"、"buil
上次我們講解了 CI/CD 的相依性,也講解了 stages 工作階段的運作,今天我們來了解 only 的作用,可以幫助我們做甚麼 only 作用 only 可以指定那些工作,只在哪個分支名運作,假設今天開了一個新分支,名子叫 feature/add_test 這樣子,接著 CI/CD 有定義四
你可能也想看
Google News 追蹤
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇的DevOps發佈系統是以Spring Cloud微服務(微服務)為背景;由GitLab、Harbor與Kubernetes組成。 GitLab負責版本管理與CI/CD(CI/CD)。 Harbor負責Docker([Docker]介紹) Image的儲存與發佈。 Kubernetes([
CI 持續整合 CI目的是建立自動化專案打包。 CD 持續發表 將打包完成的專案,自動發布。
Thumbnail
Docker-Compose負責對container做快速編排。設定檔預設名稱為docker-compose.yml,在檔案中,可以透過COMPOSE_FILE或-f對設定進行定義。 想要將專案透過Docker-Compose部署,需要創建docker-compose.yml和Dockerfile
Thumbnail
獲取Image docker pull 查看Image docker images 可以查看REPOSITORY、TAG、IMAGE ID、CREATED與SIZE。 創建Image docker build [OPTIONS] PATH | URL | - 上傳Imag
Thumbnail
Docker是由GO語言實現,是一個在GitHub上開發原始碼的專案。它的目標是實現羽量級的作業系統虛擬化。讓使用者操作Docker,就像是操作一個羽量級的虛擬機器。 優勢 快速發表和部署 高效的部署和擴充 資源使用率高 管理簡單 核心 Image映像檔 Docker
Thumbnail
本文將介紹如何在Gitlab上部署和註冊runner,以進行CI/CD測試。透過Docker-compose方式進行部署,同時注意安裝時的一些注意事項。建議學習者至少掌握一種以上的Pipeline工具,以滿足實務上的需求。
Thumbnail
本文介紹了 Docker 的基礎概念,以及在軟體工程環境中的運用。藉由 Docker 的容器化技術和映像檔技術,能夠實現開發和生產環境的一致性,並且支持負載平衡和無縫更新。此外,也提到了 Kubernetes 和 Docker Swarm 這兩個重要工具的用途和適用對象。
Docker是一種容器化技術,可以將應用程式及相關依賴項目打包到一個容器中。這篇文章介紹了安裝Docker的步驟,以及幾個比較偏向使用者的應用程式。
Thumbnail
本文將介紹Gitlab與GitHub的差異,以及在本地環境部署Gitlab的流程與實作。文章內容包括版本管理系統的選擇,Gitlab的基本功能,以及使用Docker進行部署的詳細步驟。
Thumbnail
在Kubernetes cluster上建立Jenkins,並且使用動態方式建立Jenkins Agent。透過K8S解決傳統的Jenkins一對多架構的問題,最終建立基本Pipeline在Jenkins Web UI上,簡單驗證Jenkins engine正常運行。
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇的DevOps發佈系統是以Spring Cloud微服務(微服務)為背景;由GitLab、Harbor與Kubernetes組成。 GitLab負責版本管理與CI/CD(CI/CD)。 Harbor負責Docker([Docker]介紹) Image的儲存與發佈。 Kubernetes([
CI 持續整合 CI目的是建立自動化專案打包。 CD 持續發表 將打包完成的專案,自動發布。
Thumbnail
Docker-Compose負責對container做快速編排。設定檔預設名稱為docker-compose.yml,在檔案中,可以透過COMPOSE_FILE或-f對設定進行定義。 想要將專案透過Docker-Compose部署,需要創建docker-compose.yml和Dockerfile
Thumbnail
獲取Image docker pull 查看Image docker images 可以查看REPOSITORY、TAG、IMAGE ID、CREATED與SIZE。 創建Image docker build [OPTIONS] PATH | URL | - 上傳Imag
Thumbnail
Docker是由GO語言實現,是一個在GitHub上開發原始碼的專案。它的目標是實現羽量級的作業系統虛擬化。讓使用者操作Docker,就像是操作一個羽量級的虛擬機器。 優勢 快速發表和部署 高效的部署和擴充 資源使用率高 管理簡單 核心 Image映像檔 Docker
Thumbnail
本文將介紹如何在Gitlab上部署和註冊runner,以進行CI/CD測試。透過Docker-compose方式進行部署,同時注意安裝時的一些注意事項。建議學習者至少掌握一種以上的Pipeline工具,以滿足實務上的需求。
Thumbnail
本文介紹了 Docker 的基礎概念,以及在軟體工程環境中的運用。藉由 Docker 的容器化技術和映像檔技術,能夠實現開發和生產環境的一致性,並且支持負載平衡和無縫更新。此外,也提到了 Kubernetes 和 Docker Swarm 這兩個重要工具的用途和適用對象。
Docker是一種容器化技術,可以將應用程式及相關依賴項目打包到一個容器中。這篇文章介紹了安裝Docker的步驟,以及幾個比較偏向使用者的應用程式。
Thumbnail
本文將介紹Gitlab與GitHub的差異,以及在本地環境部署Gitlab的流程與實作。文章內容包括版本管理系統的選擇,Gitlab的基本功能,以及使用Docker進行部署的詳細步驟。
Thumbnail
在Kubernetes cluster上建立Jenkins,並且使用動態方式建立Jenkins Agent。透過K8S解決傳統的Jenkins一對多架構的問題,最終建立基本Pipeline在Jenkins Web UI上,簡單驗證Jenkins engine正常運行。