微軟宣布容器將是.NET SDK支援的輸出類型之一,也就是說,開發者只要使用dotnet publish指令,就可以創建應用程式的容器化版本。官方提到,這項功能對於本地端開發、CI工作管線和執行特定指令用例將會很方便。

容器是綑綁應用程式的好方法,也是目前在雲端發布和執行應用程式的熱門形式,容器映像檔主要由兩部分組成,一部分是包含如何執行應用程式的JSON後設資料,另一部分則是表示檔案系統的tarball檔案列表,在.NET 7中,微軟透過在.NET Runtime添加數個API,以處理tarball檔案和串流,如此便可簡單地以程式開發方法操作容器映像檔。

官方提到,這種方法已經在Java生態系中的Jib和Ko for Go等專案成功運作,而.NET中的konet也獲得很好的回饋。以簡單工具生成容器映像檔的方法越來越流行,微軟基於這概念,在現有建置邏輯無縫整合容器映像檔創建功能,以C#實作,整合到.NET SDK中,使得.NET團隊可以直接在現有的工作流程中使用到新功能。

由於微軟提供了一些設定的預設值,因此開發者不需要碰觸到編寫Dockerfile的複雜工作,但是可以在MSBuild屬性和項目中,自定義生成映像檔的各部分。

微軟所使用的基礎映像檔為Debian Linux發行版,開發者也可以使用像是Alpine或Ubuntu等發行版,不過會需要手動更改基礎映像檔屬性配置,微軟提到,他們認為使用基於Debian的Runtime映像檔版本,能夠廣泛相容大多數應用程式。

由於現在這個以SDK建置容器映像檔的功能,還在預覽階段,因此仍然有一些限制,像是目前僅支援Linux-x64映像檔部署場景,Windows映像檔和其他架構的支援,雖然都在官方開發計畫中,但還需要再等等。

微軟也還未實現身份驗證支援,無法推送到遠端的註冊表,官方提到,該功能在他們優先開發列表中,與此同時,微軟建議開發者可以先將映像檔推送到本地Docker守護行程,再使用docker tag和docker push推送映像檔到目的地。另外,目前微軟也尚未實作部分映像檔後設資料的自定義,因此更完整的自定義功能之後才會提供。

微軟預計在.NET 7的候選版本發布階段,就會完成添加新的圖像後設資料,並且支援推送映像檔到遠端註冊表,同時也會支援Windows映像檔。

熱門新聞

Advertisement