天天看點

docker~aspnetcore2.0鏡像缺少libgdiplus問題

對于微軟官方提供的鏡像microsoft/aspnetcore2.0來說,它沒有安裝libgdiplus包,是以當你使用了draw去畫圖時,就會出現一些問題,我們一般會安裝第三方的包包,ZKWeb.System.Drawing,而釋出到docker裡之後,運作時,會出現找不到dll的情況!

原因:

微軟的aspnetcore鏡像是在Ubuntu作業系統基礎之上的,而這個系統上并沒有安裝libgdiplus,是以需要我們手動把鏡像運作後,先安裝一下,然後commit成自己的鏡像,以後對于這種需要Drawing的項目,就引用自己的鏡像就可以了。

解決方法(一):

進行鏡像對應的容器

然後去安裝它

然後退出

最後commit成為自己的鏡像

你可以把這個鏡像導出,放到自己的伺服器上

最後,在目标伺服器上運作即可!

解決方法(二):

修改你的Dockerfile檔案,使用RUN指令去安裝你的libgdiplus,但個人覺得,這種有些浪費資源,畢竟需要每個容器都要去安裝一個它,而且下載下傳速度不敢恭維!

當然上面的方案二不會産生新的鏡像,這點到是挺幹淨,哈哈!

感謝閱讀!