哈囉大家好~歡迎來到 CI/CD 自動化的第四天!
昨天的 Day 20,我們終於把 .gitlab-ci.yml
寫起來了,讓整個 CI Pipeline 可以自動幫我們測試、建置程式碼,甚至透過 Kaniko 把程式碼打包成 Docker Image。
聽起來超完美對吧?不過問題馬上來了:這個建好的 Image,要放哪裡去呢?
很多人第一個想到的就是 Docker Hub,畢竟它方便又公開。但在公司環境裡,這選項基本上不太可行,理由很簡單:
所以,答案呼之欲出 —— 我們要有一個 屬於自己的私有倉庫。這時候,CNCF 的畢業專案 Harbor 就登場啦!
Harbor 不是單純的「自架版 Docker Hub」,它根本是 企業級武器庫。除了存放映像檔,它還有這些超實用的功能:
所以說,Harbor 根本就是為了「公司級使用」而設計的。
最推薦的方式就是用 Helm Chart 來安裝。
harbor-values.yaml
簡單版長這樣:
expose:
type: ingress
ingress:
hostname: harbor.example.com
externalURL: https://harbor.example.com
adminPassword: "NotSoSecretPassword"
persistence:
enabled: true
trivy:
enabled: true
記得先搞定 DNS,讓 harbor.example.com
指到你的 Ingress Controller。
helm repo add harbor https://helm.goharbor.io
helm repo update
helm install my-harbor harbor/harbor \
-n harbor-system \
--create-namespace \
-f harbor-values.yaml
這個過程大概 5~10 分鐘,因為 Harbor 套件本身蠻大一包。
部署完成後,馬上來試試看!
https://harbor.example.com
ota-project
之後你就能用 harbor.example.com/ota-project
當作專屬的倉庫路徑!
簡單說,流程就是:
從今天開始,我們的 CI/CD pipeline 就有了一個 專屬的倉庫,安全又好用!
明天,我們就要把 .gitlab-ci.yml
再升級 —— 把昨天 build 出來的 Docker Image,正式推送到 Harbor 倉庫中。