The Jenkinsfile below shows how build and publish a Docker image to Docker registry on a Dockerized Jenkins node:
//Running on Docker node
node(DOCKER_IMAGE){
deleteDir()
checkout([$class: ‘GitSCM’, branches: [[name: “${git_branch}”]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: ‘abc’, url: GIT_URL]]])
stage(‘docker build, tag & push’){
//credentials for Docker registry
withCredentials([usernamePassword(credentialsId: ‘dockerpush’, passwordVariable: ‘pass’, usernameVariable: ‘user’)]) {
dir(“${dockerfile_path}”)
{//Build the Docker image
def dockerImage=docker.build(“${docker_source_image_tag}”)//Tag the image
sh ‘docker tag “${docker_source_image_tag}” “${docker_target_image_tag}”‘
docker.withRegistry(‘https://docker-test.com’, ‘dockerpush’) {
//Log into the Docker registry
sh “docker login -u ${user} -p ${pass} https://docker-test.com”
//Push the image
dockerImage.push(‘latest’)
}}
}
}}
Leave a Reply