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