2023-11-18|閱讀時間 ‧ 約 3 分鐘

Gitlab CI/CD 與 Docker 之間關係

raw-image

前言

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

Gitlab Runner 運作

在這裡你會看到特別的名詞,像是 gitlab-runner、docker+machine 還有 docker image ruby:3.1,那有些更特別的名詞會放在下個章節裡面,我們先來看 gitlab-runner 跟所謂的 ruby:3.1 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 這個程式語言指令。

自定義下載 Image

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



分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.