东方通tongweb容器自动部署java应用程序

2024-06-23 1035阅读

java应用程序部署到东方通tongweb服务中全自动化脚本,减少人工操作、降底出错机率。

东方通tongweb容器自动部署java应用程序
(图片来源网络,侵删)

实现方案:

        采用Docker 挂载目录部署方式,为不同java应用程序启动一个 tongweb docker 镜像,并 挂载当前java应用程序对应相关目录及tongweb配置。

脚本能力:
        自动化脚本实现war 包自动解压。
        支持应用配置文件与war包分离 (配置存放于war包同级目录下config目录)。
        不同java应用程序隔离互不应响。
        命令操作:resetup-重新部署、stop-停止、start-启动、restart-重启

以下是详细实现步骤

java spring boot应用打成wap包部署到东方通tongweb 实现自动化部署脚本。

1. mvn 打包排除 tomcat

    ${project.name}
    
        
            org.apache.maven.plugins
            maven-war-plugin
            
                
                    WEB-INF/lib/spring-boot-starter-tomcat-*.jar,
                    WEB-INF/lib/tomcat-embed-*.jar
                
            
        
    

2. 设定打包类型

    war

3. 准备tongweb7.0 docker 镜像

      /root/myproject/  #项目目录
      /root/myproject/tongweb  #是本地镜像包文件存放目录
      /root/myproject/myapp   #应用所在目录
      /root/myproject/myapp/package   #应用部署包所在目录


4. 准备脚本
   1) 启动镜像脚本 :
  /root/myproject/deploy-tongweb-by-docker.sh

#!/bin/sh
DOCKER_IMAGE="tongweb7:v1.0.0" #这里镜像名称 跟据实际名称版本做相应修改
TongWebPost=$1 # TongWeb主机上对外开放的端口号
CONTAINER_PORT=$2 # 容器内部端口号
HOST_PORT=$3 # 应用在主机上对外开放的端口号
AppName=$4 # 应用名称
WebConfig=$5  # tongweb应用部署配置
AppPath=$6  # 应用挂载原路径
currentDir=$(dirname $0)
if [ "${currentDir}" = "." ] ; then
        currentDir=$(pwd)
fi
if [ "${currentDir}" = ".." ] ; then
        currentDir=$(dirname $(pwd))
fi
HOST_IP=$(ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v 172.17.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:")
echo 'HOST_IP='${HOST_IP}
TongWebRoot=/app/tongweb/   #容器内 tongweb服务安装路径
if [ -z "$(docker images -q ${DOCKER_IMAGE})" ]; then
  docker load -i ${currentDir}/tongweb/tongweb7-v1.0.0.tar.gz  #这里是本地镜像包文件名称 跟据实际名称版本做相应修改
  sleep 2s
fi
AppLogPath=$(dirname ${AppPath})/logs   #应用日志挂载路径 (容器内路径/data/logs/ 需按应用实际情况做修改)
if [ ! -d "${AppLogPath}" ]; then
  mkdir -p ${AppLogPath}
fi
if [ ! -d "${AppLogPath}/tongweb" ]; then
  mkdir -p ${AppLogPath}/tongweb
fi
#如应用是nacos服务,必须指定环境变量 spring.cloud.nacos.discovery.ip 为主机IP
#同一主机部署多应用时 可指定环境变量server.port替换应用内配置
#容器内路径/data/logs/ 需按应用实际情况做修改
#容器内路径/usr/share/tongweb/ 与tongweb.xml配置文件中的 web-app.location配置是相关联的。
docker run -it -p ${TongWebPost}:9060 \
               -p ${HOST_PORT}:${CONTAINER_PORT}  \
               -d -v ${WebConfig}:${TongWebRoot}conf/tongweb.xml \
               -v ${currentDir}/license.dat:${TongWebRoot}license.dat \
               -v ${AppPath}:/usr/share/tongweb/ \
               -v ${AppLogPath}:/data/logs/ \
               -v ${AppLogPath}/tongweb:${TongWebRoot}/logs/ \
               -m 4096M \
               -e spring_cloud_nacos_discovery_ip=${HOST_IP} \
               -e server_port=${CONTAINER_PORT} \
               --name=${AppName} \
               --entrypoint="${TongWebRoot}bin/startserver.sh" \
               ${DOCKER_IMAGE}

2).准备tongweb应用部署配置文件模版

/root/myproject/myapp/tongweb_template.xml


    
    
    
        
        
        
        
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]