zoukankan      html  css  js  c++  java
  • Docker Run tibco designer from remote server

    目标:创建tibco designer的docker images并且远程调用

    实现:本人实现环境,服务器是Ubuntu16 desktop,客户端Win7

    首先在Ubuntu里面安装如下应用:

    ssh和x11安装:

    1、打开"终端窗口",输入"sudo apt-get update"-->回车-->"输入当前登录用户的管理员密码"-->回车,就可以了;

    2、打开"终端窗口",输入"sudo apt-get install openssh-server"-->回车-->输入"y"-->回车-->安装完成;

    3、打开"终端窗口",输入"sudo ps -e |grep ssh"-->回车-->有sshd,说明ssh服务已经启动,如果没有启动,输入"sudo service ssh start"-->回车-->ssh服务就会启动;

    4、使用gedit修改配置文件"/etc/ssh/sshd_config"

    打开"终端窗口",输入"sudo gedit /etc/ssh/sshd_config"-->回车-->把配置文件中的"PermitRootLogin without-password"加一个"#"号,把它注释掉-->再增加一句"PermitRootLogin yes"-->修改“X11Forwarding yes”-->保存,修改成功

    docker,安装步骤参考docker说明:(摘抄本人安装版本在docker上的安装说明)

    Docker CE for Ubuntu
    
    Docker CE for Ubuntu is the best way to install the Docker platform on Ubuntu Linux environments. Simplify provisioning and setup of Docker and accelerate your time to value in building and deploying container based applications.
    
    Docker for Ubuntu is also available as an Enterprise Edition subscription with software, support and certification that can be installed on bare metal or cloud infrastructure.
    
    Features and Benefits
    
    Easy installation and setup of an optimized Docker environment for Ubuntu on bare metal servers and VMs.
    Latest Docker platform version with built in orchestration (clustering and scheduling), runtime security, container networking and volumes.
    Available as a free download with a monthly Edge or quarterly Stable release with community support.
    Also available for ARM 32 based platforms
    Prerequisites
    
    To install Docker CE, you need the 64-bit version of one of these Ubuntu versions:
    
    Yakkety 16.10
    Xenial 16.04
    Trusty 14.04
    1. Set up the repository
    
    Set up the Docker CE repository on Ubuntu. The lsb_release -cs sub-command prints the name of your Ubuntu version, like xenial or trusty.
    
    sudo apt-get -y install 
      apt-transport-https 
      ca-certificates 
      curl
    
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
    sudo add-apt-repository 
           "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
           $(lsb_release -cs) 
           stable"
    
    sudo apt-get update
    2. Get Docker CE
    
    Install the latest version of Docker CE on Ubuntu:
    
    sudo apt-get -y install docker-ce
    3. Test your Docker CE installation
    
    Test your installation:
    
    sudo docker run hello-world

     创建tibco相关images

     本实例是基于tutum/centos的,所以先运行“sudo docker pull tutum/centos”

     创建angusyang/tibbase:

     运行“docker build -t="angusyang/tibbase:1.0.0" ./tibbase/”

    angusyang/tibbase的Dockerfile参考如下:

    FROM tutum/centos
    
    MAINTAINER Angus Esquel <angusyang@apjcorp.com>
    
    RUN groupadd -r tibgrp -g 433 && 
        useradd -u 431 -r -m -g tibgrp -d /home/tibadmin -s /bin/bash -c "TIBCO Docker image user" tibadmin && 
        mkdir /opt/tibco && 
        mkdir /tmp/install
    ENV HOME /home/tibadmin
    RUN yum -y install unzip java-1.8.0-openjdk glibc.i686 iptables*
    
    RUN chown -R tibadmin:tibgrp /home/tibadmin && 
        chown -R tibadmin:tibgrp /opt/tibco && 
        chown -R tibadmin:tibgrp /tmp/install
    
    USER tibadmin

    创建angusyang/tibdesigner:

    运行"docker build -t="angusyang/tibdesigner:5.10.0" ./tibdesigner/"

    angusyang/tibdesigner的Dockerfile参考如下:

    FROM angusyang/tibbase:1.0.0
    
    MAINTAINER Angus Esquel <angusyang@apjcorp.com>
    
    ADD files/TIB_ems_8.3.0_linux_x86.zip /tmp/install/
    ADD files/TIB_ems_8.3.0_HF-002_linux_x86.zip /tmp/install/
    ADD files/TIB_rv_8.4.5_linux_x86.zip /tmp/install/
    ADD files/TIB_rv_8.4.5_HF-002_linux_x86.zip /tmp/install/
    ADD files/TIB_TRA_5.10.0_linux_x86_64.zip /tmp/install/
    ADD files/TIB_dbdrivers_2.0.4_linux_x86_64.zip /tmp/install/
    COPY files/jdbc/jtds-1.3.1.jar /tmp/install/
    COPY files/jdbc/ojdbc6.jar /tmp/install/
    COPY files/jdbc/sqljdbc41.jar /tmp/install/
    ADD files/TIB_BW_5.13.0_linux26gl23_x86_64.zip /tmp/install/
    ADD files/TIB_BW_5.13.0_HF-006.zip /tmp/install/
    ADD files/TIB_bwpm_3.0.1_client.zip /tmp/install/
    ADD files/TIB_TIBCOAdmin_5.10.0_linux_x86_64.zip /tmp/install/
    ADD files/TIB_TIBCOAdmin_5.10.0_HF-001.zip /tmp/install/
    COPY files/docker_entrypoint.sh /opt/tibco/docker_entrypoint.sh
    
    RUN unzip /tmp/install/TIB_ems_8.3.0_linux_x86.zip -d /tmp/install/tibems/ && 
        sed -i 's/<entry key="environmentName">.*</entry>/<entry key="environmentName">ESQUEL_TIBCO_HOME</entry>/g' /tmp/install/tibems/TIBCOUniversalInstaller-ems.silent && 
        sed -i 's/<entry key="configDirectoryRoot">.*</entry>/<entry key="configDirectoryRoot">/opt</entry>/g' /tmp/install/tibems/TIBCOUniversalInstaller-ems.silent && 
        sed -i 's/<entry key="configFile">.*</entry>/<entry key="configFile">/opt/tibco/cfgmgmt/ems/data/tibemsd.conf</entry>/g' /tmp/install/tibems/TIBCOUniversalInstaller-ems.silent && 
        /bin/bash /tmp/install/tibems/TIBCOUniversalInstaller-lnx-x86.bin -silent && 
        unzip /tmp/install/TIB_ems_8.3.0_HF-002_linux_x86.zip -d /tmp/install/tibemshf/ && 
        cp -rf /tmp/install/tibemshf/bin/* -d /opt/tibco/ems/8.3/bin/ && 
        unzip /tmp/install/TIB_rv_8.4.5_linux_x86.zip -d /tmp/install/tibrv/ && 
        sed -i 's/<entry key="environmentName">.*</entry>/<entry key="environmentName">ESQUEL_TIBCO_HOME</entry>/g' /tmp/install/tibrv/TIBCOUniversalInstaller-rv.silent && 
        /bin/bash /tmp/install/tibrv/TIBCOUniversalInstaller-lnx-x86.bin -silent && 
        unzip /tmp/install/TIB_rv_8.4.5_HF-002_linux_x86.zip -d /tmp/install/tibrvhf/ && 
        cp -rf /tmp/install/tibrvhf/lib/* -d /opt/tibco/tibrv/8.4/lib/ && 
        unzip /tmp/install/TIB_TRA_5.10.0_linux_x86_64.zip -d /tmp/install/tibtra/ && 
        sed -i 's/<entry key="environmentName">.*</entry>/<entry key="environmentName">ESQUEL_TIBCO_HOME</entry>/g' /tmp/install/tibtra/TIBCOUniversalInstaller_TRA_5.10.0.silent && 
        sed -i 's/<entry key="configDirectoryRoot">.*</entry>/<entry key="configDirectoryRoot">/opt</entry>/g' /tmp/install/tibtra/TIBCOUniversalInstaller_TRA_5.10.0.silent &&     
        /bin/bash /tmp/install/tibtra/TIBCOUniversalInstaller-lnx-x86-64.bin -silent && 
        unzip /tmp/install/TIB_dbdrivers_2.0.4_linux_x86_64.zip -d /tmp/install/tibjdbc/ && 
        sed -i 's/<entry key="installationRoot">.*</entry>/<entry key="installationRoot">/opt/tibco</entry>/g' /tmp/install/tibjdbc/TIBCOUniversalInstaller-dbdrivers_2.0.4.silent &&         
        sed -i 's/<entry key="environmentName">.*</entry>/<entry key="environmentName">ESQUEL_TIBCO_HOME</entry>/g' /tmp/install/tibjdbc/TIBCOUniversalInstaller-dbdrivers_2.0.4.silent && 
        /bin/bash /tmp/install/tibjdbc/TIBCOUniversalInstaller-lnx-x86-64.bin -silent && 
        unzip /tmp/install/TIB_BW_5.13.0_linux26gl23_x86_64.zip -d /tmp/install/tibbw/ && 
        sed -i 's/<entry key="environmentName">.*</entry>/<entry key="environmentName">ESQUEL_TIBCO_HOME</entry>/g' /tmp/install/tibbw/TIBCOUniversalInstaller-BW_5.13.0.silent &&     
        /bin/bash /tmp/install/tibbw/TIBCOUniversalInstaller-lnx-x86-64.bin -silent && 
        unzip /tmp/install/TIB_BW_5.13.0_HF-006.zip -d /tmp/install/tibbwhf/ && 
        cp /tmp/install/tibbw/TIBCOUniversalInstaller-lnx-x86-64.bin -d /tmp/install/tibbwhf/ && 
        sed -i 's/<entry key="environmentName">.*</entry>/<entry key="environmentName">ESQUEL_TIBCO_HOME</entry>/g' /tmp/install/tibbwhf/TIBCOUniversalInstaller-BW_5.13.0.silent && 
        /bin/bash /tmp/install/tibbwhf/TIBCOUniversalInstaller-lnx-x86-64.bin -silent && 
        unzip /tmp/install/TIB_bwpm_3.0.1_client.zip -d /tmp/install/bwpm/ && 
        cp /tmp/install/bwpm/TIB_BusinessWorks(TM)_Process_Monitor_Client_3.0.1/bwpm.jar -d /opt/tibco/bw/5.13/lib/palettes/ && 
        unzip /tmp/install/TIB_TIBCOAdmin_5.10.0_linux_x86_64.zip -d /tmp/install/tibadmin/ && 
        sed -i 's/<entry key="environmentName">.*</entry>/<entry key="environmentName">ESQUEL_TIBCO_HOME</entry>/g' /tmp/install/tibadmin/TIBCOUniversalInstaller_TIBCOAdmin_5.10.0.silent && 
        /bin/bash /tmp/install/tibadmin/TIBCOUniversalInstaller-lnx-x86-64.bin -silent && 
        unzip /tmp/install/TIB_TIBCOAdmin_5.10.0_HF-001.zip -d /tmp/install/tibadminhf/ && 
        cp /tmp/install/tibadmin/TIBCOUniversalInstaller-lnx-x86-64.bin -d /tmp/install/tibadminhf/ && 
        sed -i 's/<entry key="environmentName">.*</entry>/<entry key="environmentName">ESQUEL_TIBCO_HOME</entry>/g' /tmp/install/tibadminhf/TIBCOUniversalInstaller_TIBCOAdmin_5.10.0.silent && 
        /bin/bash /tmp/install/tibadminhf/TIBCOUniversalInstaller-lnx-x86-64.bin -silent && 
        cp /tmp/install/jtds-1.3.1.jar -d /opt/tibco/tpcl/5.10/jdbc/ &&  
        cp /tmp/install/ojdbc6.jar -d /opt/tibco/tpcl/5.10/jdbc/ &&  
        cp /tmp/install/sqljdbc41.jar -d /opt/tibco/tpcl/5.10/jdbc/ &&  
        chmod u+s /opt/tibco/hawk/*/bin/tibhawkhma && 
        rm -rf /tmp/install/*
        
    EXPOSE 7222
    
    ENTRYPOINT ["/opt/tibco/docker_entrypoint.sh"]

    files目录下文件截图:

     

    docker_entrypoint.sh:

    #!/bin/bash
    
    set -e
    
    cd /home/tibadmin
    source .bash_profile
    
    echo 'INITCONTAINERFINISHED='$INITCONTAINERFINISHED
    
    if [[ -z $HOSTNAME ]]; then
        export HOSTNAME=localhost
        echo 'INFO: missing environment variable HOSTNAME, using default value instead ('$HOSTNAME')'
    fi
    
    if [[ -z $DISPLAY ]]; then
        export DISPLAY=':0.0'
    fi
    
    if [[ -z $INITCONTAINERFINISHED ]]; then
        echo 'INITCONTAINERFINISHED not exists'
        
        if [[ -z $DOMAIN ]]; then
            export DOMAIN=DOCKER_DESIGNER
            echo 'INFO: missing environment variable DOMAIN, using default value instead ('$DOMAIN')'
        fi
    
        sed -i 's/<DomainName>.*</DomainName>/<DomainName>'$DOMAIN'</DomainName>/g' /opt/tibco/tra/5.10/template/domainutility/cmdline/CreateDomain.xml
        sed -i 's/<AdministratorUsername>.*</AdministratorUsername>/<AdministratorUsername>admin</AdministratorUsername>/g' /opt/tibco/tra/5.10/template/domainutility/cmdline/CreateDomain.xml
        sed -i 's/<AdministratorPassword>.*</AdministratorPassword>/<AdministratorPassword>admin</AdministratorPassword>/g' /opt/tibco/tra/5.10/template/domainutility/cmdline/CreateDomain.xml
        sed -i 's/<AdminHome>.*</AdminHome>/<AdminHome>/opt/tibco/administrator/5.10</AdminHome>/g' /opt/tibco/tra/5.10/template/domainutility/cmdline/CreateDomain.xml
        sed -i '24d' /opt/tibco/tra/5.10/template/domainutility/cmdline/CreateDomain.xml
        sed -i '34d' /opt/tibco/tra/5.10/template/domainutility/cmdline/CreateDomain.xml
    
    echo 'INFO: update CreateDomain.xml over'
    
    cd /opt/tibco/tra/5.10/bin
    ./traUpgradeManager -path /opt/tibco -ems /opt/tibco/ems/8.3
    ./domainutilitycmd -cmdFile /opt/tibco/tra/5.10/template/domainutility/cmdline/CreateDomain.xml
    ./traUpgradeManager -path /opt/tibco -ems /opt/tibco/ems/8.3
        
        sed -i '$a INITCONTAINERFINISHED=true' /home/tibadmin/.bash_profile
        sed -i '$a export INITCONTAINERFINISHED' /home/tibadmin/.bash_profile
        sed -i '$a DISPLAY='$DISPLAY /home/tibadmin/.bash_profile
        sed -i '$a export DISPLAY' /home/tibadmin/.bash_profile
    fi
    
    echo 'setting finished'
    cd /opt/tibco/ems/8.3/bin
    ./tibemsd64 &
    cd /opt/tibco/tra/domain/$DOMAIN/
    ./hawkagent_$DOMAIN &
    cd /opt/tibco/administrator/domain/$DOMAIN/bin/
    ./tibcoadmin_$DOMAIN &
    cd /opt/tibco/designer/5.10/bin
    ./designer
    #ln -sf /dev/stdout /var/log/nginx/access.log 
    
    exec "$@"

    创建完相关docker images后远程调用:

    因本人客户端是win7,所以使用了MobaXterm,当然用(putty+Xming)也可以。

    配置MobaXterm的X11全局设置:

     

    配置ubuntu服务器的ssh链接:

    链接后看Xserver的地址,调用时需要使用:

    在ssh的终端运行如下命令:

    sudo docker run -itd --rm -p 7002:7222 -h MY_DESIGNER_CONTAINER --name MY_DESIGNER -e DOMAIN="DOCKER_DESIGNER" -e DISPLAY=192.168.1.103:0.0 --net=host esquel/tibdesigner:5.10.0 /bin/bash

    如果一切正常的话,应该会弹出Tibco Designer的对话框:

     

  • 相关阅读:
    一些关于视频相关基础概念
    熟悉某项目代码---零碎小知识总结
    C#中如何判断一个字符是汉字
    面试碰到一个这样的题------ 输入为一个字符串和字节数,输出为按字节截取的字符串
    C# 拼Json格式字符串 返回前段js 出错解决
    学习maple
    格林公式
    麦克斯韦方程组 (Maxwell's equation)的简单解释
    关于Ciarlet的泛函的一道homework的一个想法
    关于分开编写多个LaTeX文件的一点微小的总结
  • 原文地址:https://www.cnblogs.com/angusyang/p/6591935.html
Copyright © 2011-2022 走看看