【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使用。

Windows Container中修改json檔案設定值的方法

通常使用到Docker技術執行Container容器都是使用Linux環境,但是Windows環境也可以使用Container,有的時候因為一些考量會需要製作兩套不同環境(Windows & Linux)的Docker Image,所以前面一篇文章提到了如何在Linux Container中修改json檔案設定值的方法,這一篇則是來說明如何在Windows Container中做到一樣的事情。

不同的地方在於,Linux環境中透過額外安裝jq套件來達成修改json檔案的作法,在Windows環境下我們則是使用PowerShell來達成這樣的事情,所以不需要額外安裝任何套件(PowerShell應該都有內建在Windows環境中)。

閱讀全文

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

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

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

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

閱讀全文

同一台電腦可執行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上面執行,一併將這些操作記錄下來。

閱讀全文