pipeline {
    agent any
    tools { 
        maven “maven-3.8.1”
    }
    parameters {
        choice(
            choices: ‘test\nsit\nglzn\nshenyang\nprod’,
            description: ‘choose deploy environment’,
            name: ‘profile_active’
            )
        choice(
            choices: ‘iot-core\nai-core\nai-cloud’,
            description: ‘choose project group’,
            name: ‘proj_group’
            )            
        string (name: ‘version’, defaultValue: ‘1.0.0’, description: ‘build version’)
        string (name: ‘app_name’, defaultValue: ‘iot-admin’, description: ‘app name’)
        choice(
            choices: ‘192.168.181.83\n192.168.186.6\n192.168.180.218\n192.168.181.52’,
            description: ‘choose file server’,
            name: ‘file_server_ip’
            )
    }    
    environment {
        image_tag = “${profile_active}${version}-“
        file_path = “/data/app/files/${proj_group}/${image_tag}” 
        image_repo = “192.168.180.204:19080/${proj_group}” 
        os_type = “x86” 
    }
    
    stages {
        stage(‘Deploy Proj’) {
            steps {
                sh ”’
                    app_name=${app_name}
                    rm -rf *.jar
                    wget http://192.168.180.218:10082/files/proj_jar/${app_name}.jar
                    cat > Dockerfile <<-EOF
FROM 192.168.200.17/software/jre11:openjdk11
VOLUME /tmp
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
COPY application/target/$app_name.jar /
ENV JAVA_OPTS=”-Dname=$app_name -Duser.timezone=GMT+08 -Dfile.encoding=UTF8 -Dfastjson.parser.safeMode=true”
ENTRYPOINT exec java \\$JAVA_OPTS \\${JVM:=-Xms512m -Xmx2048m} -jar /$app_name.jar
EOF
                    date=`date +’%Y%m%d’`
                    image_name=${image_repo}/$app_name/${os_type}:${image_tag}$date
                    docker build -t $image_name . && docker images
                    docker save -o $app_name.tar $image_name
                    tar -zcvf $app_name.tar.gz $app_name.tar
                    rm -rf $app_name.tar && docker rmi $image_name

                    ansible $file_server_ip -m shell -a “mkdir -p ${file_path}$date”
                    ansible $file_server_ip -m copy -a “src=$app_name.tar.gz dest=${file_path}$date/$app_name.tar.gz”                             
                    ansible $file_server_ip -m shell -a “echo $image_name > ${file_path}$date/$app_name.txt”
                    ”’
            }
        }
        
    }
}

 (如果有相关问题,可加微信: java2demo 进学习交流群咨询)

>> 更多技术问题可扫码学习交流:


版权声明:本文为me_002原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/me_002/article/details/125640465