设为首页 收藏本站
查看: 1525|回复: 0

[经验分享] [原]Docker部署SuperMap8.1.1

[复制链接]

尚未签到

发表于 2017-12-6 21:10:18 | 显示全部楼层 |阅读模式
  摘要:本文主要实践在Docker上制作SuperMap(超图)V8.1.1镜像,文中将使用 docker commit 方式创新镜像(Dockerfile择机再做)。本文中使用的宿主环境及镜像环境都是CentOS7.2.1511
  (为啥是SuperMap呢?因为我们公司的项目全是用超图滴)
  本机上的现状
DSC0000.png

  1. 创建新容器,此处新建的容器ID前四位是18f6



docker run -it centos7.2.1511
DSC0001.png

  2. 复制jre,tomcat部署包到容器中



docker cp server-jre-8u121-linux-x64.tar.gz 18f6:/tmp
docker cp apache-tomcat-8.5.11.tar.gz 18f6:/tmp
  请在超图网站自行下载,本文使用war包
DSC0002.png

  下载好后在宿主机中将文件解压好 unzip supermap_iserver_8.1.1a_war.zip
DSC0003.png

  将3个war文件和 support_linux_x64.tar.gz 复制到容器中



docker cp iserver#help.war 18f6:/tmp

docker cp iserver#iClient.war 18f6:/tmp

docker cp iserver.war 18f6:/tmp
docker cp support_linux_x64.tar.gz 18f6:/tmp
  3. 启动容器,使用 -ia 参数,可以向容器附加输入输出,通俗点来说就是有能开启容器的终端



docker start -ia 18f6
  可以看到相当于进入到容器内部,看到了上一步中复制进去的jre、tomcat的部署包
DSC0004.png

  4. 部署jre



mkdir -p /usr/local/java
mv /tmp/server-jre-8u121-linux-x64.tar.gz /usr/local/java
tar -xzvf /usr/local/java/server-jre-8u121-linux-x64.tar.gz -C /usr/local/java
rm /usr/local/java/server-jre-8u121-linux.x64.tar.gz -f
  使用 vi /etc/profile 设置java环境变量,在 /etc/profile 最下面添加以下环境变量



export JAVA_HOME=/usr/local/java/jdk1.8.0_121
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin
  使用 source /etc/profile 使环境变量生效,验证jre部署
DSC0005.png

  5. 部署tomcat



mkdir -p /usr/local/tomcat
mv /tmp/apache-tomcat-8.5.11.tar.gz /usr/local/tomcat
tar -xzvf /usr/local/tomcat/apache-tomcat-8.5.11.tar.gz -C /usr/local/tomcat
rm /usr/local/tomcat/apache-tomcat-8.5.11.tar.gz -f

  使用 vi /etc/profile 设置tomcat环境变量,在 /etc/profile 最下面添加以下环境变量



export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5.11
export CATALINA_BASE=/usr/local/tomcat/apache-tomcat-8.5.11
export PATH=$PATH:$CATALINA_BASE/bin
  使用 source /etc/profile 使环境变量生效,启动tomcat, $CATALINA_BASE/bin/startup.sh
  使用 curl -I 验证tomcat,看到200状态码说明tomcat已经开始工作了。
DSC0006.png

  6. 部署超图
  先创建 supermap 目录 mkdir -p /home/supermap
  解压超图文件包  tar -xzvf support_linux_x64.tar.gz --strip-components 1 -C /home/supermap  
  安装Supermap依赖项( /home/supermap/dependencies_check_and_install.sh 是超图提供的默认安装依赖项的脚本,而且并不能在CentOS7.2.1511上正确运行,因此这里只能手动安装了)



yum install gcc gcc-c++ libX11 zlib glibc libpng libgomp libXau libXdmcp libXext libXtst libXi -y
  安装SuperMap License的依赖项



yum install libstdc++-devel.i686 glibc.i686 libgcc.i686 libstdc++.i686 glibc-devel.i686 -y
  将超图的war包全放到 $CATALINA_BASE/webapps ,即tomcat中



cp /tmp/iserver*.war $CATALINA_BASE/webapps
  使用 vi /etc/profile 设置超图环境变量,在 /etc/profile 最下面添加以下环境变量



export SUPERMAP_ROOT=/home/supermap
export UGO_HOME=$SUPERMAP_ROOT/objectsjava/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$UGO_HOME
  7. 创建开机运行文件 vi /run.sh ,输入以下内容



#!/bin/bash
cd /home/supermap/SuperMap_License/Support
tar xvf aksusbd-2.4.1-i386.tar
cd aksusbd-2.4.1-i386
./dunst
./dinst

source /etc/profile
sh $CATALINA_BASE/bin/catalina.sh run
DSC0007.png

  8. 退出容器



exit
  9. 创建新的超图镜像



docker commit 18f6 centos:supermap
DSC0008.png

  10. 创新新的超图容器



docker run -p 8080:8080 -d --name think8848_supermap centos:supermap /run.sh
  使用 docker ps 可以看到容器5802已经在后面运行了
DSC0009.png

  在宿主机上开启防火墙端口



firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
  11. 尝试访问超图,打开浏览器,输入 http://hostip:8080/iserver , 就可以看 到下面的画面了
DSC00010.png

DSC00011.png

  进入超图了
DSC00012.png

  超图服务管理页面
DSC00013.png


附:关于超图的一点小经验
  1. 在使用超图的过程中,我和同事都发生过一个问题,时间久了后,超图服务的管理员密码不知道了,不要急着重装,还有个办法可以解决,点击这里,下载密码重启脚本。
  非Docker环境下:将passwordreset.zip解压,得到passwordreset.sh,将这个文件放到tomcat的bin目录下,然后给该文件执行权限,并执行之。
  Docker环境下:先进入容器,将passwordreset.sh放到 $CATALINA_BASE/bin 目录下,然后打开 vi /run.sh 文件,在 sh $CATALINA_BASE/bin/catalina.sh run 之上添加 sh $CATALINA_BASE/bin/passwordreset.sh run 脚本,然后退出容器,使用 docker restart 5802 重新容器,再次打开超图服务管理器,就能重置密码了。然而在重置密码之后,又需要更新一次临时授权。记得最后把run.sh中的重置密码行删掉,不然下次开启又自动重置密码了。
  2. 在Linux下部署超图, 如果需要用 systemctl enable tomcat 自动启动tomcat,那么需要在 /usr/lib/systemd/system/tomcat.service 进行如下配置,否则iserver无法启动



[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Environment=JAVA_HOME=/usr/local/java/jdk1.8.0_121
Environment=JRE_HOME=/usr/local/java/jdk1.8.0_121/jre
Environment=CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5.11
Environment=CATALINA_BASE=/usr/local/tomcat/apache-tomcat-8.5.11
Environment=SUPERMAP_ROOT=/home/supermap
Environment=UGO_HOME=/home/supermap/objectsjava/bin
Environment=LD_LIBRARY_PATH=/home/supermap/objectsjava/bin
Type=forking
PIDFile=/usr/local/tomcat/apache-tomcat-8.5.11/tomcat.pid
ExecStart=/usr/local/tomcat/apache-tomcat-8.5.11/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-421471-1-1.html 上篇帖子: 制作 leanote docker 镜像 下篇帖子: docker私有库搭建过程(Registry)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表