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" } } } } }