pipeline { agent any environment { HARBOR_CREDENTIALS = 'jenkins-harbor' HARBOR_URL = 'https://harbor.lan' IMAGE_NAME = 'rsyncd' IMAGE_TAG = 'latest' } stages { stage('Build and Push Docker Image') { steps { script { withCredentials([usernamePassword(credentialsId: HARBOR_CREDENTIALS, usernameVariable: 'HARBOR_USERNAME', passwordVariable: 'HARBOR_PASSWORD')]) { sh "docker login -u ${HARBOR_USERNAME} -p ${HARBOR_PASSWORD} ${HARBOR_URL}" sh "docker build -t ${HARBOR_USERNAME}/${IMAGE_NAME}:${IMAGE_TAG} ." sh "docker tag ${HARBOR_USERNAME}/${IMAGE_NAME}:${IMAGE_TAG} ${HARBOR_URL}/${HARBOR_USERNAME}/${IMAGE_NAME}:${IMAGE_TAG}" sh "docker push ${HARBOR_URL}/${HARBOR_USERNAME}/${IMAGE_NAME}:${IMAGE_TAG}" } } } } } post { always { echo 'Pipeline finished' } } }