1. wisp-ui的基本概念
wisp-rs提供的是业务逻辑的实现。与wisp-rs不同,wisp-ui是提供Web页面的渲染。wisp-ui同样是基于OSGi的应用。Java程序构建的UI通过wisp-ui渲染成为Web页面。
所以,我们可使用上一节相似的方式进行部署。
特别注意的是,wisp-ui的基本环境配置为使用https的,我们在后面会使用Ngnix来进行反向代理,因此,在wisp-ui上配置https就没有必要的了。所以,我们需要修改配置文件。
2. wisp-ui发行版的目录结构
configuration
保存OSGi运行区,config.ini和一组配置文件
lang
语言包
scheme
包含若干产品的site文件的模板
plugins
系统运行的OSGi bundle
site
包含站点的lib、资源等等
有关wisp-ui的技术细节,我在未来的章节介绍。
3. wisp-ui目录结构的改造
与wisp-rs的思路一致,wisp-ui的configuration目录还是要外置,lang,scheme,site文件都放在configuration目录中。
wisp-ui的目录:
3. 创建wisp-ui镜像
打包:
tar -cvf wisp-ui.tar.gz wisp-ui
创建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"]
创建镜像
sudo docker build -t wisp-ui:latest .
注意上面最后一个点,表示Dockerfile在当前目录中。
创建容器并启动
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
现在我们访问 http://192.168.100.5 可以看到站点已经可以连接了:
我们删除刚才的wisp-ui容器,在81,82,83端口分别创建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
现在我们可以看到有下列的容器正在运行
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