pipeline { agent any environment { IMG = "127.0.0.1/middleware/buildflow-web" } stages { stage("Build image") { steps { sh "docker build -t ${IMG}:latest -t ${IMG}:${BUILD_NUMBER} ." } } stage("Push to Harbor") { steps { withCredentials([usernamePassword(credentialsId: "harbor-admin", usernameVariable: "HU", passwordVariable: "HP")]) { sh 'echo "$HP" | docker login 127.0.0.1 -u "$HU" --password-stdin' sh "docker push ${IMG}:latest && docker push ${IMG}:${BUILD_NUMBER}" } } } stage("Deploy") { steps { sh "docker compose -f /home/xiangning/deploy/buildflow/docker-compose.yml pull buildflow-web" sh "docker compose -f /home/xiangning/deploy/buildflow/docker-compose.yml up -d --no-deps buildflow-web" } } } post { always { sh "docker image prune -f || true" } } }