Pipeline+Docker持续集成Java

583 阅读1分钟

以下操作均在一台服务器:

相信你已经拥有Jenkins、Docker、maven,也有版本控制系统(Git),且在Jenkins里配置了凭据。

新建流水线作业,直接在结尾选择Pipeline from SCM(repository根目录下建scripts目录,新建jenkinsfile和dockerfile)

Pipeline内容如下:

pipeline{
    agent any
    stages {
        stage('pull code'){
            steps {
                timeout(time: 5,unit: 'MINUTES') {
                    checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'xxxx', url: 'ssh://git@xxxxx.git']]])
                }
            }
        }
        stage('build war package'){
            steps {
                retry(3) {
                    sh '''
                    mvn install
                    '''
                }
            }
        }
        stage('build docker image'){
            steps {
                sh '''
                mv xxx/target/test-1.0-SNAPSHOT.war scripts
                docker build -t testapi:dev -f scripts/dockerfile scripts
                '''
            }
        }
        stage('deploy&&run'){
            steps {
                sh '''
                docker run -d -p 8080:8080 --name testapi testapi:dev
                '''
            }
        }
    }
    post {
        always {
            sh '''
            rm -f scripts/test-1.0-SNAPSHOT.war
            '''
        }
    }
}

Dockerfile内容如下:

FROM tomcat:9-alpine
COPY test-1.0-SNAPSHOT.war /usr/local/tomcat/webapps

后期可以根据需求自行添加shell脚本到scripts目录来实现镜像和容器的删除、构建和运行

以上仅代表个人观点,根据需求采纳