【2022鐵人賽】基本版-建立CI Pipeline(3)

Develop CI Flow

這篇內容利用了Google建置的gcloud的Docker Image來執行gcloud CLI工具的指令,除了先前建立的服務帳戶要補上一個IAM的角色之外,透過Container執行gcloud指令還有一個重點,它將會是能不能夠正常透過Container執行gcloud的關鍵!

【2021鐵人賽】建立自管的Azure DevOps Agent(Linux Container agent)

前一篇文章建立了Azure DevOps Agent的Windows Container Image,已經知道了基本的概念就是:1.選擇基底映像檔、2.安裝所需要的額外套件與程式、3.將Azure DevOps Agent的開始程式start.ps/start.sh複製進去。

【2021鐵人賽】建立自管的Azure DevOps Agent(Windows Container agent)

這篇延續前一篇在Windows VM中安裝Azure DevOps Agent的內容,講解了如何讓Agent在Windows Container中執行,從基底映像檔的差異到挑選適合的映像檔在Dockerfile中使用,也示範如何將Host中Docker提供給Container使用。

WSL啟動時,自動啟動Docker服務

如果有看前一篇文章,也就是在WSL中安裝原生的Docker環境,可能在電腦重新啟動之後輸入wsl進入Linux子系統時,會發現docker怎麼好像又不能使用了?

Docker服務未啟動(Server無法連線)
重新啟動wsl之後輸入docker的指令無法使用

其實這只是因為電腦重新啟動後,WSL環境也是重新啟動,所有額外安裝的程式與服務都需要手動重新啟動它們,所以這時候只要再輸入sudo service docker start,再執行docker的指令就可以正常工作了。

不過每次WSL重新啟動之後都需要輸入指令讓docker服務啟動,說實在的有一點麻煩,因為通常用到WSL的時候就是要在裡面跑docker container,所以如果在輸入wsl進入Linux子系統環境的時候就能夠自動將服務啟動的話,那不是方便很多嗎?

這一篇文章就是說明該如何在Linux子系統設定自動啟動docker服務,這個概念其實就和Windows作業系統啟動的時候要執行什麼事情所做的設定是相同的概念,所以也不限於使用在WSL的環境喔!

閱讀全文

同一台電腦可執行Windows與Linux Container?在WSL2安裝原生Docker環境

如果想要在同一台電腦中既可以執行Windows Container,又可以執行Linux Container,以便測試程式在不同環境之下執行的結果或是設定值的差異,該如何達到這樣的需求呢?

答案就是:利用Windows中的Linux子系統(Windows Subsystem for Linux, WSL)。

透過WSL安裝Linux子系統之後,可以在Linux子系統中安裝原生的Docker執行環境,在Windows環境中則是安裝Docker Desktop並且切換到使用Windows Container,這樣一來就可以在Windows環境執行Windows Container,Linux子系統中執行Linux Container了。

註:WSL是Windows 10的功能,版本又分為Version 1(WSL)與Version 2(WSL2),WSL2只能在Windows 10 2004版(組建19041以上)執行。(參考官方wsl文件說明)

在開始之前,先輸入wsl -l -v查看一下系統內安裝的Linux子系統是執行在哪一個版本(1或2)。
在Linux子系統中要執行原生的Docker,只能在Version 2的版本(WSL2)。

使用wsl -l -v查看系統中 Linux子系統執行的版本

閱讀全文