問題1:dotnetcore項目使用System.Drawing.Common畫圖時會提示僅在windows上支持,部署到docker上直接提示不支持該類庫
這個問題微軟官方文檔有說明,在各個平台的畫圖方案,其中在linux平台推薦使用的是SkiaSharp庫
問題2:dotnet項目引用nuget包 SkiaShap 畫圖,在windows運行沒問題,跑到docker里直接又報錯‘System.DllNotFoundException: Unable to load shared library 'libSkiaSharp' or one of its dependencies’
這個問題也在網上搜了很多文章,最后自己試出來了,SkiaSharp組件在windows上和linux上的包是不一樣的,要想在linux上正常運行,需要在項目中把SkiaSharp包刪掉,引用另一個包SkiaSharp.NativeAssets.Linux.NoDependencies
重新編譯,windows上運行成功,docker上也能運行成功
問題3:使用SkiaSharp畫文字的時候,在windows運行正常,到docker里文字不顯示
這是因為docker環境里缺少字體,可以在基礎鏡像里添加字體或者通過其他方式將字體安裝到docker中,可以去網上搜linux或者docker安裝字體的教程