Files
hello-world-node/Jenkinsfile
2026-03-11 22:38:42 +05:30

59 lines
1.8 KiB
Groovy

pipeline {
agent any
environment {
// Replace with your actual registry URL (e.g., harbor.example.com or docker.io)
REGISTRY_URL = 'localhost:5000'
IMAGE_NAME = 'hello-world-node'
// The ID of the credentials you've stored in Jenkins for your registry
REGISTRY_CREDENTIALS_ID = 'registry-credentials'
}
stages {
stage('Checkout') {
steps {
// This stage is usually handled automatically by Jenkins when using a Multibranch Pipeline or SCM
checkout scm
}
}
stage('Build Docker Image') {
steps {
script {
echo "Building image: ${REGISTRY_URL}/${IMAGE_NAME}:${env.BUILD_NUMBER}"
// Build the image using the multistage Dockerfile
dockerImage = docker.build("${REGISTRY_URL}/${IMAGE_NAME}:${env.BUILD_NUMBER}", "./hello-world-node")
}
}
}
stage('Push to Registry') {
steps {
script {
// Log in to the registry using stored credentials and push the image
docker.withRegistry("http://${REGISTRY_URL}", REGISTRY_CREDENTIALS_ID) {
dockerImage.push()
dockerImage.push('latest')
}
}
}
}
stage('Cleanup') {
steps {
sh "docker rmi ${REGISTRY_URL}/${IMAGE_NAME}:${env.BUILD_NUMBER}"
sh "docker rmi ${REGISTRY_URL}/${IMAGE_NAME}:latest"
}
}
}
post {
success {
echo 'Deployment successful!'
}
failure {
echo 'Deployment failed. Check the logs for details.'
}
}
}