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

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

实现方案:

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

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

以下是详细实现步骤

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

1. mvn 打包排除 tomcat

<build>
    <finalName>${project.name}</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <packagingExcludes>
                    WEB-INF/lib/spring-boot-starter-tomcat-*.jar,
                    WEB-INF/lib/tomcat-embed-*.jar
                </packagingExcludes>
            </configuration>
        </plugin>
    </plugins>
</build>

2. 设定打包类型

    <packaging>war</packaging>

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

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tongweb>
    <auto-deploy enabled="true" jsp-compile="false" request-parameters-lost-validation="false" dir="${tongweb.base}/autodeploy" check-interval="3000" vs-name="server" app-secret-level="1"/>
    <hot-deploy enabled="true" watched-resource="WEB-INF/web.xml,MATA-INF/application.xml"/>
    <apps>
        <web-app id="console" name="console" original-location="${tongweb.upload}/console" location="${tongweb.sysapp}/console" context-root="/console" vs-names="admin" is-directory="true" enabled="true" description="console" deploy-order="1" object-type="sys" jsp-compile="false" request-parameters-lost-validation="false" dtd-validate="false" is-autodeploy="false" delegate="false"/>
        <web-app id="heimdall" name="heimdall" original-location="${tongweb.upload}/heimdall" location="${tongweb.sysapp}/heimdall" context-root="/heimdall" vs-names="admin" is-directory="true" enabled="true" description="heimdall" deploy-order="1" object-type="sys" jsp-compile="false" request-parameters-lost-validation="false" dtd-validate="false" is-autodeploy="false" delegate="false"/>
        <web-app id="sysweb" name="sysweb" original-location="${tongweb.upload}/sysweb" location="${tongweb.sysapp}/sysweb" context-root="/sysweb" vs-names="admin" is-directory="true" enabled="true" description="sysweb" deploy-order="1" object-type="sys" jsp-compile="false" request-parameters-lost-validation="false" dtd-validate="false" is-autodeploy="false" delegate="false"/>
        <web-app id="%APP_NAME%" name="%APP_NAME%" original-location="/usr/share/tongweb/webroot" location="/usr/share/tongweb/
  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Tong Tec h ® ® ........................................................................................................................... 1 第 1 章 TongWeb6.1 应用服务器概述 ....................................................................................... 11 1.1 概述 ............................................................................................................................... 11 1.2 JavaEE6 Full Profile 的新特性 ..................................................................................... 11 1.3 TongWeb6.1 的体系结构 .............................................................................................. 12 1.4 TongWeb6.1 的特性 ...................................................................................................... 13 1.5 集成的第三方产品 ........................................................................................................ 13 1.6 规范支持 ....................................................................................................................... 13 第 2 章 TongWeb6.1 服务安装 ................................................................................................... 14 2.1 TongWeb6.1 安装要求 .................................................................................................. 14 2.1.1 TongWeb6.1 支持的操作系统 ............................................................................ 14 2.1.2 系统要求 ............................................................................................................. 14 2.1.3 其他 ..................................................................................................................... 14 2.2 安装 TongWeb6.1 .......................................................................................................... 15 2.2.1 Windows 平台上 TongWeb6.1 标准版的安装 ..................................................... 15 2.2.2 Linux 平台上标准版的安装 .............................................................................. 19 2.2.3 Linux 平台上静默安装 ...................................................................................... 24 2.2.4 其它平台上标准版的安装 ................................................................................. 25 2.2.5 企业版本安装 ..................................................................................................... 25 2.2.6 Deb 和 rpm 包安装 .............................................................................................. 25 2.2.7 安装 License ...................................................................................................... 25 2.3 TongWeb6.1 开始向导 .................................................................................................. 26 2.3.1 TongWeb6.1 应用服务器目录说明 .................................................................... 26 2.3.2 启动服务器 ......................................................................................................... 26 2.3.3 管理控制台 ......................................................................................................... 29 2.3.4 JConsole ............................................................................................................. 32 2.3.5 停止服务器 ......................................................................................................... 36 2.4 卸载 TongWeb6.1 的过程 ............................................................................................. 36 2.4.1 Windows 平台上卸载 .......................................................................................... 36 2.4.2 Linux 平台上卸载 .............................................................................................. 37 第 3 章 应用管理 ....................................................................................................................... 37 3.1 应用管理概述................................................................................................................ 37 3.1.1 应用类型支持 ..................................................................................................... 37 3.1.2 应用部署方式 ..................................................................................................... 38 3.1.3 应用管理方式 ..................................................................................................... 38 3.1.4 应用形态结构 ..................................................................................................... 38 3.1.5 应用部署附加属性 ............................................................................................. 42 3.1.6 应用自定义部署描述文件 ................................................................................. 44 3.1.7 多个应用共享 jar 包和类的方法 ..................................................................... 44 3.2 管理控制台应用管理 .................................................................................................... 44 3.2.1 查看已部署应用 ............................................................................................. 44 3.2.2 应用部署 ............................................................................................................. 45 3.2.3 应用查看与编辑 ................................................................................................. 49 3 3.2.4 查看应用子模块 ................................................................................................. 51 3.2.5 应用部署 ......................................................................................................... 52 3.2.6 应用部署 ......................................................................................................... 52 3.2.7 应用访问 ............................................................................................................. 54 3.2.8 应用停止 ............................................................................................................. 54 3.2.9 应用启动 ............................................................................................................. 54 3.2.10 应用更新 ................................................................................................. 55 3.2.11 应用版本管理 ......................................................................................... 57 3.2.12 Connector 应用 ...................................................................................... 57 3.3 自动部署 ....................................................................................................................... 59 3.3.1 设置自动部署目录 ............................................................................................. 59 3.3.2 自动部署支持的应用类型 ................................................................................. 60 3.3.3 自动部署支持的部署方式 ................................................................................. 60 3.3.4 默认的自动部署目录 ......................................................................................... 60 3.3.5 自动部署应用 ..................................................................................................... 60 3.3.6 自动部署应用 ................................................................................................. 61 3.3.7 自动部署应用 ................................................................................................. 61 3.4 热部署 ........................................................................................................................... 61 3.4.1 热部署配置 ......................................................................................................... 61 3.4.2 热部署应用 ......................................................................................................... 62 3.5 命令行部署 ................................................................................................................... 62 第 4 章 Web 容器 ........................................................................................................................ 62 4.1 Web 容器说明 ............................................................................................................... 62 4.1.1 Web 容器配置 ...................................................................................................... 63 4.2 访问日志 ....................................................................................................................... 64 4.2.1 访问日志提供的功能 ......................................................................................... 64 4.2.2 访问日志的使用 ................................................................................................. 64 4.2.3 访问日志格式 ..................................................................................................... 65 4.2.4 访问日志使用示例 ............................................................................................. 66 4.3 虚拟主机 ....................................................................................................................... 67 4.3.1 虚拟主机提供的功能 ......................................................................................... 67 4.3.2 虚拟主机的使用 ................................................................................................. 68 4.3.3 虚拟主机使用示例 ............................................................................................. 71 4.4 道 ............................................................................................................................... 72 4.4.1 道提供的功能 ................................................................................................. 72 4.4.2 道的使用 ......................................................................................................... 73 4.4.3 配置使用说明 ..................................................................................................... 81 4.5 虚拟主机与道的关系 ................................................................................................ 84 4.6 类加载 ........................................................................................................................... 84 4.6.1 类加载机制 ......................................................................................................... 84 4.6.2 类加载模式 ......................................................................................................... 86 4.6.3 类加载推荐策略 ................................................................................................. 87 4.6.4 类加载参数 ......................................................................................................... 87 4.7 其他 ............................................................................................................................... 88 4 4.7.1 设置 Session Cookie 的名字 ........................................................................... 88

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值