昨天我們成功在本機建立了一個Docker的映像檔。但是對於一個完整的CICD環境來說,我們不可能每一次部署都重新Build一次新的Docker映像檔,因為這樣做,就違反了我們當初使用同一個映像檔去部署不同環境,所帶來的一致性的優點。
因此,當我們每次建立了一個新的映像檔的時候,我們就需要有一個倉庫,去儲存及記錄低每一次建立的映像檔內容。這樣做除了可以讓不同環境保留一致性以外,當Container因故需要重啟時,亦可以重新在倉庫中取得存檔了的Docker映像檔。
所以今天,我會跟大家介紹一款企業級開源Docker Registry軟體 - Harbor。
Harbor是一個企業級的Docker映像檔Registry。Harbor以Role based access control去管理不同的專案及Repository。在同一個專案中,不同的用戶可以對每個不同的映像檔有不同的權限。
Harbor亦支援設定不同的政策,去同步不同的Registry之間映像檔。例如當企業對安全性有一定需求時,可以在開發環境跟生產環境中安裝兩個獨立的Harbor軟體。當映像檔經過測試及批准的流程後,才可以把映像檔由開發環境的Registry映射(Replicate)到生產環境的Registry中。
除此以外,Harbor還提供了不少額外的功能。例如Helm Chart的Repository或是一些Vulnerability Scanning的工具如Trivy。大大提升了開發團隊的工作效率以及產品的安全性。
接下來的兩天,我們會先安裝Harbor,順道為Harbor加入Trivy這個掃描工具。然後在我們的CICD Pipeline中,把程序封裝成一個Docker映像檔,再存放到Harbor的倉庫中。
是日没有題外話...