Newer
Older
MusicDownloader / deployment / Jenkinsfile
def dockerImage
 
pipeline {
    agent any
    options {
        buildDiscarder(logRotator(numToKeepStr: '10', artifactNumToKeepStr: '10'))
    }
    tools {
          'org.jenkinsci.plugins.docker.commons.tools.DockerTool' 'Default'
    }
    stages {
        stage('Cloning Git') {
            steps {
                git ([url: 'https://gitbucket.jerxie.com/git/yangyangxie/MusicDownloader.git', branch: 'master', credentialsId: '4f856c5e-4e28-46c5-aaa0-c9be1424f3ae'])
            }
            
        }
        stage('Build Docker Image') {
            steps {
                sh "cp -r src deployment/docker"
                sh "cp requirements.txt deployment/docker"
                //  Change the directory to the staging folder
                dir("deployment/docker"){
                    script{
                        dockerImage = docker.build("docker.jerxie.com/music-downloader:pipeline")
                    }
                }
                sh "rm -rf deployment/docker"
            }
        }
        
        stage('Push Docker Image') {
            steps {
                script {
                    sh "docker login -u registry -p registry https://docker.jerxie.com"
                    dockerImage.push()
                }
            }
        }
        
        stage('Cleanup local Docker Image') {
            steps {
                script {
                    sh "docker rmi -f docker.jerxie.com/music-downloader:pipeline"
                }
            }
        }
    }
}