node('docker') { def dockerfile = 'Dockerfile' def app_name = 'sslproxy' def app_port = '80' def workdir = 'dockerfiles/services/sslproxy' def DOCKER_HOST = 'dkhost:2376' stage('prepare') { // git credentialsId: 'f1f58215-c789-44a2-9b72-50e4425cb061', url: 'ssh://git@git.xai-corp.net:10022/xai-corp.net/provisioning.git' checkout scm sh 'ls' } stage('build') { dir(workdir) { docker.withRegistry('http://dkregistry.xai-corp.net:5000', 'b11d7f1a-81ac-4daf-8842-56afc0d2370e') { def customImage = docker.build("dkregistry.xai-corp.net:5000/sslproxy:2.1", "-f ${dockerfile} .") customImage.push() } // sh "docker-compose -f docker-compose-prod.yml pull" } } stage('deploy') { dir(workdir) { try { sh """ export DOCKER_HOST=${DOCKER_HOST} docker stack deploy --with-registry-auth --prune -c docker-compose-prod.yml sslproxy docker service update -q sslproxy_app """ sleep 10 sh "curl -If https://git.xai-corp.net/" } catch (err) { echo "Caught: ${err}" currentBuild.result = 'FAILURE' sh 'docker service update --rollback sslproxy_app' } } } stage('smoke tests') { dir(workdir) { } } }