1. wisp-ui的基本概念
wisp-rs提供的是業(yè)務邏輯的實現(xiàn)。與wisp-rs不同,wisp-ui是提供Web頁面的渲染。wisp-ui同樣是基于OSGi的應用。Java程序構建的UI通過wisp-ui渲染成為Web頁面。
所以,我們可使用上一節(jié)相似的方式進行部署。
特別注意的是,wisp-ui的基本環(huán)境配置為使用https的,我們在后面會使用Ngnix來進行反向代理,因此,在wisp-ui上配置https就沒有必要的了。所以,我們需要修改配置文件。
2. wisp-ui發(fā)行版的目錄結構

image.png
configuration
保存OSGi運行區(qū),config.ini和一組配置文件
lang
語言包
scheme
包含若干產品的site文件的模板
plugins
系統(tǒng)運行的OSGi bundle
site
包含站點的lib、資源等等
有關wisp-ui的技術細節(jié),我在未來的章節(jié)介紹。
3. wisp-ui目錄結構的改造
與wisp-rs的思路一致,wisp-ui的configuration目錄還是要外置,lang,scheme,site文件都放在configuration目錄中。

image.png
wisp-ui的目錄:

image.png
3. 創(chuàng)建wisp-ui鏡像
打包:
tar -cvf wisp-ui.tar.gz wisp-ui
創(chuàng)建Dockerfile:
FROM ubuntu
LABEL version="6.0" description="wisp-ui" by="ghuazh"
ADD wisp-ui.tar.gz /
ENV LANG C.UTF-8
VOLUME ["/wisp-ui/configuration"]
WORKDIR /wisp-ui/
EXPOSE 80 443
CMD ["./wisp"]
創(chuàng)建鏡像
sudo docker build -t wisp-ui:latest .
注意上面最后一個點,表示Dockerfile在當前目錄中。
創(chuàng)建容器并啟動
sudo docker run --name wisp-ui --network mongo --ip 192.168.100.5 -p 80:80 \
-v /home/wis/build/client/configuration:/wisp-ui/configuration -d wisp-ui
現(xiàn)在我們訪問 http://192.168.100.5 可以看到站點已經可以連接了:

image.png
我們刪除剛才的wisp-ui容器,在81,82,83端口分別創(chuàng)建3個wisp-ui為下一步的集群做好準備。
sudo docker rm wisp-ui
sudo docker run --name wisp-ui-0 --network mongo --ip 192.168.100.6 -p 81:80 \
-v /home/wis/build/client/configuration:/wisp-ui/configuration -d wisp-ui
sudo docker run --name wisp-ui-1 --network mongo --ip 192.168.100.7 -p 82:80 \
-v /home/wis/build/client/configuration:/wisp-ui/configuration -d wisp-ui
sudo docker run --name wisp-ui-2 --network mongo --ip 192.168.100.8 -p 83:80 \
-v /home/wis/build/client/configuration:/wisp-ui/configuration -d wisp-ui
現(xiàn)在我們可以看到有下列的容器正在運行
wis@wis:~/build/client$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
89c69c2b22af wisp-ui "./wisp" 8 minutes ago Up 8 minutes 443/tcp, 0.0.0.0:83->80/tcp wisp-ui-2
e6f7fd2045dd wisp-ui "./wisp" 9 minutes ago Up 9 minutes 443/tcp, 0.0.0.0:82->80/tcp wisp-ui-1
5de373caed7f wisp-ui "./wisp" 9 minutes ago Up 9 minutes 443/tcp, 0.0.0.0:81->80/tcp wisp-ui-0
25563448ca12 wisp-rs "./rs" 6 hours ago Up 6 hours 0.0.0.0:6123->6123/tcp, 0.0.0.0:9158->9158/tcp wisp-rs
1cfbd13c6cca mongo "docker-entrypoint.s…" 43 hours ago Up 9 hours 27017/tcp mongo2
788c8440db14 mongo "docker-entrypoint.s…" 43 hours ago Up 9 hours 27017/tcp mongo1
668ef82126d1 mongo "docker-entrypoint.s…" 43 hours ago Up 9 hours 27017/tcp mongo0
我們下一章開始使用Ngnix來代理這些wisp-ui