【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複製進去。

Linux container中修改json檔案設定值的方法

現在許多的程式設計都使用了json格式的檔案作為設定檔的儲存格式,可以跨平台在Linux環境執行的.Net Core也不例外,伴隨著appsettings.json檔案中許多的設定,不管是預設的設定,或是不同開發需求自行加入進去的設定值,全部都是json格式。

為了在docker啟動container的時候可以根據繫結的環境參數(environment, -e)值做出相對應的修改,因此需要有個方便的作法可以在container執行的時候動態修改json檔案。

這一篇文章就來介紹如何在Linux中透過jq套件修改json文件。

閱讀全文

Azure VM 開啟 Ping 網路規則

Ping這個網路工具(指令)是時常被拿來測試網路是否通順的功能,除了可以測試機器的網路是否正常之外,有時候還會拿來觀察網路延遲的時間。

這次的需求是為了知道簡單網路行為的耗用時間,也就是延遲時間,所以透過Ping這個簡單的網路測試功能來獲得Client端到Server端的網路耗用時間(ms),用在計算某些服務耗用時間的扣除基準。

不過,雲端服務的防火牆預設是不開放任何網路封包從外面進入,必須根據需求在網路規則介面上建立,像是常用到的Web 80 Port,或是Windows遠端連線RDP的3389,所以這次需要在網路規則中加上Ping的允許規則。

閱讀全文

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子系統執行的版本

閱讀全文

Windows 10 Home家用版安裝Hyper-V與Docker

公司一開始配的電腦是Acer的套裝電腦,裡面搭配的是Windows 10 Home版,作為一個開發者,Home版本的功能實在是不太符合需求,因為預設應該是沒有Hyper-V功能,如果要安裝Docker的話,也只能安裝Client工具…

不太想要動到OS重灌這一招,想到之前似乎有試過(看到)在Windows 10 Home版安裝Hyper-V與WSL,不過因為很久沒有寫部落格記錄,有些問題解決之後就沒有記錄,所以趁著這次解決這個問題並且將部落格從幾次亂搞之後最近放到Google Cloud Run上面執行,一併將這些操作記錄下來。

閱讀全文