JupyterHub是一個普遍使用的大數據分析的WebUI界面,在JupyterHub for K8s中集成SuperMap iObjects Python,便可在JupyterLab的Notebook環境下中使用各類地理空間數據的處理功能,實現一體化的空間數據分析,若是整合SuperMap iClient Python,還能夠進一步實現GIS服務的在線訪問和Web瀏覽器上的可視化。html
須要步驟:java
具體操做以下。python
下載iObjects Java組件,iObjects Python須要該組件來執行空間計算操做。linux
wget -c http://download.supermap.com.cn/2019/SuperMap9D/9.1.1/iObjects_911_release_20190129/supermap-iobjectsjava-9.1.1-16827-70590-linux64-all-Bin.tar.gz
iObjects Java須要用到libpng12-0_1.2.54-1ubuntu1.1_amd64.deb,可是我這個Docker鏡像用的Ubuntu 18.04裏沒有默認安裝,須要先下載下來,在Docker Build過程當中安裝進去。git
完成iObjects Java組件的複製到./SuperMap、安裝,調用Docker Build,完成後清除目錄中的內容。參考內容以下:github
#docker build --build-arg "HTTP_PROXY=10.1.1.174:9999" --build-arg "HTTPS_PROXY=10.1.1.174:9999" -t openthings/databook . echo "" echo "========================================================" echo "Prepare SuperMap iObjects Java packages ..." mkdir -p ./SuperMap/iobjectsjava911/Bin cp -r ../../../resources/Bin ./SuperMap/iobjectsjava911/ cp -r ../../../resources/supermap_any_2019.lic9d ./SuperMap/supermap_any_2019.lic9d echo "" echo "========================================================" echo "Build docker openthings/databook ..." docker build --build-arg "HTTP_PROXY=10.1.1.174:9999" -f Dockerfilez -t openthings/databook . echo "" echo "========================================================" echo "Remove SuperMap iObjects Java packages ..." rm -r ./SuperMap echo "" echo "Build openthings/databook Finished, view: docker images." echo "========================================================" echo ""
# -------------------------------------------------------------------- # 添加 iObjects-python 軟件包。 RUN pip install iobjectspy==9.1.1 # -------------------------------------------------------------------- # 獲取 iObjects Java組件軟件。 # wget: http://download.supermap.com.cn/2019/SuperMap9D/9.1.1/iObjects_911_release_20190129/supermap-iobjectsjava-9.1.1-16827-70590-linux64-all-Bin.tar.gz # into SuperMap/iobjectsjava911/Bin # 安裝iObjects Java 的License文件,能夠網絡在線申請。 RUN mkdir -p /opt/SuperMap/License/ COPY ./SuperMap/supermap_any_2019.lic9d /opt/SuperMap/License/ # 複製iObjects Java到Docker中。 RUN mkdir -p /opt/SuperMap/iobjects/911/Bin COPY ./SuperMap/iobjectsjava911/Bin /opt/SuperMap/iobjects/911/Bin # 安裝libpng支持庫。 RUN chmod +x /opt/SuperMap/iobjects/911/Bin/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb && \ dpkg -i /opt/SuperMap/iobjects/911/Bin/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb
爲何要先複製到./SuperMap目錄下?docker
由於Docker不能ADD/COPY非Dockerfile當前目錄下的文件。ubuntu
我也不想將iObjects Java存放在Dockerfile目錄下。vim
先複製到./SuperMap目錄下,再ADD到Docker內部,而後構建完予以刪除。瀏覽器
將上面的腳本保存爲buildz.sh,改變屬性爲可執行 sudo chmod +x buildz.sh,而後運行之。
修改Tag(由於每次build會覆蓋),使用:
Docker tag openthings/databook openthings/databook:20190708
若是須要在多個節點上使用,可使用Harbor來存儲和推送。
節點少的話,在全部的節點上手工Docker save保存、而後傳送過去、再Docker Load便可。
由於JupyterHub的運行Notebook Server實例鏡像Tag改變,須要進去配置。
能夠經過Kubectl工具直接修改配置參數,不須要從新安裝JupyterHub服務。
運行:
kubectl edit configmap/hub-config -n jupyter
有時候出現亂碼,安裝vim便可。
按i進入編輯狀態,按esc+wq即保存退出。
同時刪除jupyterhub和supermap-jupyter(以前的實例),等待系統從新建立實例。
從新登陸進JupyterHub的頁面,每個用戶名會建立相應的Notebook Server實例。