docker運行jexus+mono爬坑記

新的.net core都已經支持docker。手頭有一些原來開發的asp.net舊項目,用的asp.net mvc開發的,跑在.net formwork 4.6上。linux

在docker的公共倉庫search了下,找到了一個jexus+mono的docker包。pull下來後開始嘗試把原來的項目部署上。web

運行 #docker run -it -p80:80 jexus/mono bash,進入docker容器內的bashdocker

root@1958b09db073:/usr/jexus# ls
def.py jws jws.conf jwsHttpd.exe jwss log os.def runtime siteconf state4.conf tools
root@1958b09db073:/usr/jexus#小程序

進入siteconf目錄,找到默認配置文件default,使用docker cp命令複製到本地,打開以下:windows

 

 

最上邊找打了jexus的根目錄爲/var/www/default微信小程序

實際查看發現/var下沒有www/default目錄,手工創建後,放了一個index.aspx文件,隨手寫了幾行代碼。而後運行瀏覽器

#./jws start,打開瀏覽器而後輸入服務器IP地址。bash

很順利的跑起來了。看來一切順利啊。服務器

把本身手上的項目先經過winscp複製到系統上,而後解壓,複製進容器內。微信

#docker cp website/* 195:/var/www/default/

複製成功後刷新瀏覽器,果真好用。

等等!個人圖片怎麼許多都不見了,首頁顯示樣式貌似也不正常。

按F12,查看Chrome的調試工具,在network裏找到數個資源返回404狀態的。這是什麼狀況?

實際查看了下文件名,發現是大小寫的問題。原來如此,原來在windows系統上部署時大小寫不敏感,如今在Linux上是大小寫敏感的,文件名大小寫與代碼內的文件名不一致。

嗯,看來代碼仍是寫規矩點好...

把文件的大小寫改好,終於頁面漂亮了。

登陸進去試試

輸入用戶名,密碼...

等等,個人驗證碼哪兒去了?

F12,驗證碼獲得了個500錯誤。什麼狀況?

在瀏覽器中打開顯示

 

看來是缺乏文件,進入錯誤提示的目錄而後ls

明明就有這個文件嘛。搞什麼鬼。

#ldd libgdiplus.so

查下依賴關係。N多的no found。原來如此,momo安裝時默認安裝了libgdiplus,可是卻沒有安裝他的依賴包。從依賴列表中逐個把缺失的文件包從宿主的文件系統複製到docker容器的文件系統。

基本上都在/usr/lib/x86_64-linux-gnu/或者/lib/x86_64-linux-gnu/內,個別文件就在當前目錄,因爲默認搜索的目錄是上述兩個x86_64-linux-gnu目錄內,所以將當前目錄裏的文件複製一份到/usr/lib/x86_64-linux-gnu/內便可

再次刷新瀏覽器

多災多難啊!FontFamily看來跟字體有關,繼續查錯,注意到有get_GenericSansSerif (),Sans是個字體的名稱。推測可能缺乏字體。

bing了一下錯誤信息,網上有網友遇到過相似的錯誤。

標題爲:mono+jexus 驗證碼不顯示:System.Drawing

System.ArgumentException

The requested FontFamily could not be found [GDI+ status: FontFamilyNotFound]

...

...

最後的結論是

 安裝字體:
yum install -y dejavu-fonts-common dejavu-lgc-sans-mono-fonts

 這是CentOS的安裝方式,可目前這裏使用的是docker,apt-get 安裝有問題,須要update才行,update後必然引發容器變大。這是沒必要要的。決定嘗試直接把字體複製進docker,看看是否能夠解決此問題。

進入字體目錄/usr/share/founts/truetype,ls,有一個有意思的目錄,dejavu。這個目錄就是前邊那個網友解決問題時安裝的字體,進入該目錄ls

對這四個字體懷疑,先複製到docker試試吧。 

 再次刷新瀏覽器

運氣不錯,竟然成了!

 基本正常了,哦,某些URL重寫的頁面報錯,404,看來這東西對URL重寫有問題。jexus直接支持url重寫,在jexus的配置文件逐條添加rewrite=xxx xxx,而後重啓jexus,

#./jws restart

終於一切正常了!!!

 


相關文章
相關標籤/搜索