现在越来越多的客户需要适配国产中间件,在本次项目中需要适配宝蓝德的中间件。涉及到 应用服务器和前端服务器。特此在这里记录一下。

宝蓝德WEB服务器WEB_SERVER制作Docker镜像

老规矩先上代码。


# 1.引入JAVA镜像,此处的镜像是我自己基于openjdk上加了字体包和设置了时区的一个版本。
FROM java:opejdk-8u121-jre-alpine-t
# 2.设置环境变量
ENV BWS_HOME=/opt/bws
ENV LD_LIBRARY_PATH=$BWS_HOME/lib:$LD_LIBRARY_PATH
# 3.将宝蓝德的文件放到镜像中
ADD BES-WEBSERVER-STANDALONE-3.1.0.1106-RHEL6-X64 $BWS_HOME
RUN mkdir -p $BWS_HOME
# 4.指定WORKDIR
WORKDIR $BWS_HOME/bin
# 5.赋权、启动
# 此处最坑的就是宝蓝德的这个服务器必须需要在后面加上tail -f或者别的命令让进程不中断。不然容器启动后主进程结束容器自动关闭
ENTRYPOINT chmod -R 777 $BWS_HOME;./bws -p $BWS_HOME;tail -f $BWS_HOME/logs/bws-console.log
EXPOSE 80

首先制作宝蓝德WEB服务器的镜像,我们需要一个java的镜像作为基础,因为宝蓝德WEB_SERVER需要基于JAVA环境运行。

然后就是将程序包传入镜像内,并且给它们赋权。

最最重要的就是(也是最坑的),必须要在启动 WEB服务器的命令后加上一段命令,让容器一直保持运行状态,不然容器会自动中止。

其实制作镜像并不难,主要问题就是国产软件的厂商文档是真的辣鸡!!!!!!!!!!!!坑了我几个小时解决不了这个问题。。。

国产麒麟镜像问题和启动命令

这个暂时还没有适配,不过客户那边给出一个 docker run 的执行脚本。

因为客户那边的国产化镜像是麒麟的,听客户说必须要在 docker run 加启动参数 -ulimit nofile=122880:122880-m 3G 。用来限制宝蓝德WEB_SERVER的资源使用情况。

不知道为啥,还没实操过,毕竟公司没有这个资源。哈哈哈哈哈。

SpringBoot适配宝蓝德应用服务器

首先会拿到如下jar包

其中我们一般只需要关注bes-actuator-......-.jar 和 bes-lite-spring-....-.jar 这俩,第一个是宝蓝德应用服务器的管理中心,第二个是替换springboot中的 tomcat。

然后我们需要将以下的jar包添加到本地的maven仓库中。

# 提供两个示例
mvn install:install-file -DgroupId=com.bes.appserver -DartifactId=bes-actuator-spring-boot-2.x-starter -Dversion=9.5.5.002 -Dpackaging=jar -Dfile=C:\Users\ibzhanghongsen-c\Desktop\temp\bes-actuator-spring-boot-2.x-starter-9.5.5.002.jar

mvn install:install-file -DgroupId=com.bes.appserver -DartifactId=bes-lite-spring-boot-2.x-starter -Dversion=9.5.5.002 -Dpackaging=jar -Dfile=C:\Users\ibzhanghongsen-c\Desktop\temp\bes-lite-spring-boot-2.x-starter-9.5.5.002.jar

然后只需要在 pom 文件中替换配置即可。


<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--   宝兰德web中间件     -->
        <dependency>
            <groupId>com.bes.appserver</groupId>
            <artifactId>bes-lite-spring-boot-2.x-starter</artifactId>
            <version>9.5.5.002</version>
        </dependency>
        <!--    宝兰德监控组件    -->
        <dependency>
            <groupId>com.bes.appserver</groupId>
            <artifactId>bes-actuator-spring-boot-2.x-starter</artifactId>
            <version>9.5.5.002</version>
        </dependency>