SuperMap iManager云套件iServer镜像定制与更新-以定制达梦依赖为例

文章目录

  • 0. 应用场景需求
  • 1. 实现步骤
    • 1.1 首先云套件新建节点,以该节点为模板
    • 1.2 复制依赖或文件进入容器
    • 1.3 进入容器
    • 1.4 容器内授权文件权限(默认只有读写权限,无执行权限)
    • 1.5 查看“libcrypto.so”软连接并删除软连接
    • 1.6 复制达梦依赖到/opt/UGO/Bin目录下
    • 1.7 提交容器成镜像
    • 1.8 镜像推送到仓库
    • 1.9 使用新镜像

0. 应用场景需求

当需要对既有镜像更新依赖或文件以实现新功能时,需要对官方镜像进行DIY。下文以arm版SuperMap云套件10.2版本增加达梦8数据库依赖为例进行说明,定制达梦依赖到镜像让其支持发布达梦数据库空间数据。原理是使用正在运行的容器为模板,增加文件或依赖后提交成镜像,同时更新tag便签符合镜像库要求,然后推送到镜像库,使用时指定成该镜像即可。

1. 实现步骤

1.1 首先云套件新建节点,以该节点为模板

云套件新建节点,查看节点所在宿主机,然后找到容器ID:通过shell命令根据节点名称查看
docker ps | grep "容器名称"
带IP的那一行即为要找的容器。

1.2 复制依赖或文件进入容器

该步骤用途是把需要在容器里新增的内容拷贝进去,拷贝路径自定义,不知道拷贝到哪个位置也可先进入容器查看文件目录再拷贝。
docker cp dm_arm_lib 容器ID:/opt/UGO

1.3 进入容器

docker exec -it 容器ID /bin/bash

1.4 容器内授权文件权限(默认只有读写权限,无执行权限)

进入容器后对拷贝进来的文件进行自己需要的操作。1.4-1.6步骤属于容器内部的自定义操作。
chmod 777 /opt/UGO/dm_arm_lib/*

1.5 查看“libcrypto.so”软连接并删除软连接

删除软连接目的是拷贝文件替换
ls -il /opt/UGO/Bin
rm -rf /opt/UGO/Bin/libcrypto.so

1.6 复制达梦依赖到/opt/UGO/Bin目录下

cp -a /opt/UGO/dm_arm_lib/* /opt/UGO/Bin/
复制进去的依赖是以下20个,缺少任何一个依赖都会导致imanager云套件节点连接不上达梦数据库:
SuperMap iManager云套件iServer镜像定制与更新-以定制达梦依赖为例_第1张图片
大部分依赖是从达梦8的安装目录bin找的,个别找不到的需要找达梦技术人员提供,依赖都是arm版的。

1.7 提交容器成镜像

容器自定义操作完成后提交成镜像并推送到镜像库使用。
提交命令参见docker commit 命令

docker commit 命令参数释义如下

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。

docker commit -a "wubingfeng" -m "Used to solve spatial analysis problems." -p bfce09e458d0 172.17.1.1:5000/supermap/iserver-gisapplication:10.2.0-arm64-21.11.19

1.8 镜像推送到仓库

docker push 172.17.1.1:5000/supermap/iserver-gisapplication:10.2.0-arm64-21.11.19

1.9 使用新镜像

在云套件中新建节点(或者不新建,针对既有的节点更新镜像),然后在云套件管理页面对应节点上点击“修改镜像”,填入“172.17.1.1:5000/supermap/iserver-gisapplication:10.2.0-arm64-21.11.19”稍等片刻即可。

你可能感兴趣的:(SuperMap,SuperMap,iManager,gis,java,linux)