jenkins/gitlab构建python项目docker镜像

环境准备

pycharm:开发代码

gitlab:代码仓库

jenkins:构建镜像

harbor:镜像仓库

构建流程

 

 

gitlab创建dnsweb项目 

 

pycharm配置gitlab

安装gitlab插件

配置gitlab仓库连接地址

 

 提交代码到dnsweb

 

 jenkins配置dnsweb项目

创建dnsweb流水线

 

 保留项目构建数量

 

 

添加构建参数,可以根据实际应用构建情况来添加

 jenkins构建脚本

checkout可以通过jenkins pipeline自动生成;sh脚本按照实际来写
pipeline {
    agent any

    stages {    // get project code from repo
        stage('pull') {
            steps {
                //git credentialsId: 'dnsweb-gitlab', url: 'http://gitlab.devops.com/app/dnsweb.git'
                checkout changelog: false, poll: false, scm: [$class: 'GitSCM', branches: [[name: "${params.gitbranch}"]], \
                extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: "${params.app_name}/${env.BUILD_NUMBER}/${params.app_name}"], \
                [$class: 'CleanBeforeCheckout', deleteUntrackedNestedRepositories: true]], userRemoteConfigs: [[credentialsId: 'dnsweb-gitlab', \
                name: 'origin', url: 'http://gitlab.devops.com/app/dnsweb.git']]]
                //sh "git clone ${params.git_repo} ${params.app_name}/${env.BUILD_NUMBER}/${params.app_name} && cd ${params.app_name}/${env.BUILD_NUMBER}/${params.app_name} && git checkout ${params.gitbranch}"
            }
        }
        
        stage('package') { // exec mvn cmd
            steps {
                sh "cd ${params.app_name}/${env.BUILD_NUMBER} && mkdir ${params.target_dir} && tar -zcvf ${params.target_dir}/${params.app_name}.tar.gz --exclude=.git ${params.app_name}"
            }
        }
        
        stage('image') { // build image and push to registry
            steps {
                writeFile file: "${params.app_name}/${env.BUILD_NUMBER}/${params.target_dir}/Dockerfile", text: """FROM harbor.devops.com/${params.base_image}
                ADD ${params.app_name}.tar.gz /opt"""
                sh "cd ${params.app_name}/${env.BUILD_NUMBER}/${params.target_dir} && \
                docker build -t harbor.devops.com/${params.image_name} . && \
                docker push harbor.devops.com/${params.image_name}"
            }
        }
    }
}

 测试构建

 

posted @ 2021-07-29 14:29  chengd  阅读(613)  评论(0)    收藏  举报