一、镜像制作

1、将安装介质o2server-5.0.3-linux.zip上传至镜像制作服务器上。(上传目录为/paas/xxhpaas/moka/o2oa)
2、使用unzip命令解压安装包,参考命令:unzip o2server-5.0.3-linux.zip
3、制作DockerFile文件,文件内容如下:
image2020-7-1_16-16-57.png
Dockerfile说明
3.1、FROM为基础镜像名称,我这边拿了一个已经做好的tomcat的镜像,镜像中包括Tomcat、JDK、Linux操作系统
3.2、PAAS平台不允许使用root用户启动应用,所以我创建了一个新的用户 gx
3.3、将解压后的o2server拷贝到容器中(使用COPY命令),一开始尝试直接将安装包unzip到容器里面,试验了几次都报错后才使用的copy方式。
3.3、为新建的用户gx赋予o2server目录的管理权限,能够读、写、执行权限。
3.4、容器启动的时候将用户切换为 gx(1000为gx的用户编号,测试paas平台要求使用"user 用户编号"方式切换用户)
3.5、容器启动后的ENTRYPOINT为执行启动o2oa的脚本 start_linux.sh
4、镜像制作命令:docker build -t o2oa_1.0.0 .
image2020-7-1_17-39-9.png
5、镜像制作完毕后将镜像存储为tar包进行保存,保存命令:docker save o2oa_1.0.0 |gzip > o2oa_1.0.0.tar
6、检查镜像是否能够正常启动,使用docker run命令在打包设备上通过镜像创建容器。操作步骤如下
♦检查镜像名称,命令:docker images |grep o2oa 如下图
image2020-7-1_17-40-6.png

♦启动容器:docker run 镜像ID & ,实际命令如下图:
image2020-7-1_17-42-13.png

♦检查容器是否启动,获取容器ID号。docker ps lgrep 镜像ID 实际命令如下图。能够看到容器已经能够正常启动。显示结果的第一列为容器ID
image2020-7-1_17-44-8.png

♦进入容器 命令:docker exec -it 容器号 /bin/bash ,实际命令如下:(能够看到控制台已经切换为gx用户)
image2020-7-1_17-46-17.png

♦检查o2oa的启动日志,查看应用启动是否正常
image2020-7-1_17-48-43.png
image2020-7-1_17-49-9.png
image2020-7-1_17-48-22.png


♦检查完毕后记得将容器销毁,参考命令:docker kill 容器ID
image2020-7-1_17-49-58.png

二、PAAS平台部署

1、将镜像文件(o2oa_1.0.0.tar)上传至PAAS平台的镜像仓库。使用PAAS平台提供的镜像资产上载工具(如下图)
image2020-7-1_16-44-55.png

2、创建三套7层负载,分别提供给center (端口:30112)、application(端口:30113)、web (端口:30110)应用使用。具体如下:
image2020-7-1_17-10-26.png

3、在PAAS平台上创建应用,关键配置信息如下:
3.1 、CPU和内存需要选择得当,测试环境我使用了2C 6G内存,容器的镜像使用之前上传的o2oa_1.0.1版本
image2020-7-1_16-58-42.png
3.2、挂载配置文件node_127.0.0.1.json、externalDataSources.json (将基础服务器配置文件和数据库文件放入PAAS平台管理。在容器启动后,应用启动前PAAS平台会将配置文件写入/data/o2oaserver/config目录下)
image2020-7-1_16-59-54.png

node_127.0.0.1.json 配置文件修改内容:将center端口设置为30112、将application端口设置为 30113、将web端口修改为30110
image2020-7-1_17-3-24.pngimage2020-7-1_17-3-54.pngimage2020-7-1_17-4-39.png
externalDataSources.json 配置文件内容为oracle相关数据库地址、端口、实例、用户名和口令配置
image2020-7-1_17-6-7.png
3.3、将康检查设置,目前设置的是主机命令检查,由于o2oa启动需要时间,后续可以根据启动时间设置首次检查延迟时间,并将主机命令检查调整为http检查。
image2020-7-1_17-6-52.png

3.4、应用与7层负载关联配置, o2oa的3个http服务对应3个7层负载,上下文转发规则为 “/” 。配置界面如下
image2020-7-1_17-13-2.png
image2020-7-1_17-13-17.png
image2020-7-1_17-13-31.png
3.5、应用能够正常启动,访问效果如下。目测相关网络请求无报错信息。
image2020-7-1_17-23-43.png

三、共享存储处理

1、dockerfile修改,在容器中创建共享存储的根目录/appdata,并赋予管理权限。
image2020-7-2_16-29-3.png
2、容器编排阶段挂载 externalStorageSources.json配置文件,配置文件写入/data/o2server/config目录下。
配置文件内容样例如下,需要将个JSON对象的节点中的"protocol"设置为file、将“prefix” 设置为具体共享存储的目录地址。
image2020-7-2_16-25-27.png
3、在容器编排阶段,增加/appdata的共享存储挂载。
image2020-7-2_16-27-54.png

四、关于容器节点自动扩展的问题

目前咨询产品组,容器化的部署可以不去定制修改node_ip.json,统一使用node_127.0.0.1.json即可。在PAAS平台上设置POD数量即可,如下图:
image2020-7-2_17-15-16.png

设置后2个POD能够正常启动,如下图:
image2020-7-2_17-16-21.png
具体系统使用有无问题还需要详细的测试。:)

推荐文章:

服务集成-通过数据接口获取流程数据
2021-03-02
O2OA允许用户自行修改源码或者增加源码来扩展系统服务,也可以包装功能更强的业务服务。本文主要介绍如何在Java代码中通过接口获取流程的业务数据。
如何使用应用市场?
2021-02-18
工作管理,固定资产管理,移动门户,公文管理,用车管理,通知公告等,O2OA应用市场拥有丰富的可直接下载使用的模块。O2OA连接O2云之后,可以使用应用市场,免费
组织人员同步-封装Api接口完成同步
2021-04-07
O2OA允许用户自定义接口和代码逻辑来完成系统与第三方业务系统的数据同步,人员和组织的同步。本文主要介绍组织人员同步的数据操作规范。
流程设计-自定义提交功能
2021-03-11
当默认提交界面不能满足用户时候,可以使用本功能进行提交界面的定制。自定义提交功能基于表单和脚本实现。开发人员可以通过修改自定义界面的样式,添加或删除组件,设置提
流程设计-流程设计与应用权限设置
2021-02-26
本文主要介绍如何在O2OA中进行审批流程或者工作流设计,O2OA主要采用拖拽可视化开发的方式完成流程的设计和配置,不需要过多的代码编写,业务人员可以直接进行修改
密码管理-普通用户初始化密码设置
2021-02-25
O2OA可以配置新用户初始化密码的规则。本篇主要介绍如何配置新用户初始化密码的规则。
系统配置-第三方数据库配置-MySQL
2021-02-25
O2OA开发平台支持第三方数据库,如Mysql,Oracle,SQLServer以及国产达梦,人大金仓,神州通用数据库等。本篇主要介绍如何在O2OA中配置第三方
服务集成-通过接口启动一个新的流程实例(工单)
2021-03-02
O2OA允许用户自行修改源码或者增加源码来扩展系统服务,也可以包装功能更强的业务服务。本文主要介绍如何在Java代码中通过接口从第三方应用系统启动O2OA中的业
常见问题-数据导出或者导入时发生OOM异常
2021-02-07
现象描述:OOM异常Exceptioninthread"main"java.lang.OutOfMemoryError:Requestedarraysizeex
数据中心-查询配置中日期格式jpql sql匹配写法
2021-02-07
在jpql中,对日期格式有特殊的写法,格式如下:Date-{d'yyyy-mm-dd'}-forexample:{d'2019-12-31'}Time-{t'h

results matching ""

    No results matching ""