作者:于福豪 时间: 2021-01-05
http://elb-791125809.cn-northwest-1.elb.amazonaws.com.cn:5335/xdata/sh2019gh144/back-end/gis-server-root
分支:gis-docker-20201105
planCheckRule.xml也放到配置中心文件中,尝试获取子节点list对象时,没解析出来。制作基础镜像,开始将所有环境依赖安装到一个镜像里,达到5G
后经运维人员修改,只安装iobject所需的环境,依赖宿主机内的iobject环境,需映射宿主机的supermap-iobject安装路径到容器内的特定路径里/usr/local/iobject
基础镜像地址
172.31.36.236/middleware/dist-jdk18:latest
需要宿主机内部署web许可
容器内应用添加获取web许可的代码
//65400为购买的许可模块 
int [] arrayOfInt = {65400};
boolean login = BSLicense.login("161.189.205.144", 9183, arrayOfInt);
存在的问题
把所有配置文件都放置在一个主文件夹下,方便配置文件的挂载,方便配置。
gis-config
├── planCheck
├── publishMapTemplate
│   └── template
└── tzStatistics
    └── dicFile
将所有数据文件都放置在一个主文件夹下,方便数据文件的挂载,方便排查问题
webApi-data
├── loadData
├── log
│   ├── gis-server-bizservice
│   └── gis-server-web
├── planCheckReport
├── publicMapData
│   ├── publishMapDatasource
│   └── publishMapServerDataDir
│   
├── tzStatisticsResult
└── uploadItemData
# 基础镜像使用supermap-iobject镜像
FROM 172.31.36.236/middleware/dist-jdk18:latest
# 维护人员
MAINTAINER yufh@dist.com.cn
# 工作目录
WORKDIR webApi
# 将jar包,配置文件夹,启动文件添加到容器中
ADD gis-server-web.jar /webApi/gis-server-web.jar
ADD gis-server-service-land.jar /webApi/gis-server-service-land.jar
ADD gis-config /webApi/gis-config
ADD gis-config/startUp.sh /webApi/startUp.sh
# 修复java.security.InvalidKeyException: Illegal keyW size错误
RUN sed -i 's/#crypto.policy=unlimited/crypto.policy=unlimited/g' /usr/local/jdk1.8.0_152/jre/lib/security/java.security
# 启动文件授权
RUN chmod +x startUp.sh
# 启动文件
ENTRYPOINT ["./startUp.sh"]
spring-alibaba-cloud + nacos
1、启动nacos
2、下拉项目
bootstrap.yml nacos配置信息3、gitlab代码库里添加Jenkins角色
4、jenkins新建流水线项目
添加Pipeline脚本
//脚本示例
pipeline {
    agent {
        node{
            label 'Slave179'
        }
    }
    environment {
         def version = sh script: 'mvn help:evaluate -Dexpression=project.version -q -DforceStdout', returnStdout: true
        //  def version = '1.0.0-SNAPSHOT'
         def artifactId = 'gis-service'
         def projectNameSpace='nr_sh2019gh144'
         def harborIp='172.31.36.236'
    }
    stages{
        stage('pull'){
            steps{
                git branch: 'gis-docker-20201105', credentialsId: 'jenkins-gitlab', url: 'ssh://git@elbgit-1200450932.cn-northwest-1.elb.amazonaws.com.cn:5337/xdata/sh2019gh144/back-end/gis-server-root.git'
            }
        }
        stage('compiler'){
            steps{ 
                echo "${version}"
                sh '''
                mvn clean package -DskipTests -P pg-prod
                '''
            }
        }
        stage('build'){
            steps{
                sh '''
                mv ./gis-server-web/Dockerfile gis-server-web/target
                mv ./gis-server-service-land/target/gis-server-service-land.jar gis-server-web/target
                mv ./gis-config gis-server-web/target  
                docker build -t ${harborIp}/${projectNameSpace}/b_${artifactId}:${version} gis-server-web/target
                docker build -t ${harborIp}/${projectNameSpace}/b_${artifactId}:latest gis-server-web/target
                '''
            }
        }
		stage('push'){
            steps{
                sh '''
                docker push ${harborIp}/${projectNameSpace}/b_${artifactId}:${version}
                docker push ${harborIp}/${projectNameSpace}/b_${artifactId}:latest
                '''
            }
        }
        stage('update'){
            steps{
                sh '''
                export PATH=$PATH:/usr/local/rancher-v2.3.2
                rancher kubectl --namespace=backend-nr apply -f /yaml/NR-yaml/nr-gis-service-ts.yaml &> null || true
                rancher kubectl replace --force -f /yaml/NR-yaml/nr-dme-cloud-ts.yaml &> null
                '''
            }
        }
}
修改内容:
5、查看harbor仓库中构建的镜像
6、在Rancher里部署服务
7、启动服务