#!/usr/bin/env groovy import groovy.json.*; def image; def branchName = "${env.BRANCH_NAME}"; def branchNameTest = "preprod"; def branchNameProd = "master"; def prefixDocker = "test"; def dockerNginxName = ["nginx", "-p 80:80 --privileged --link test-auth:auth --link test-salix:salix --link test-client:client --link test-mailer:mailer --link test-production:production"] def dockerAuthName = ["auth", "-p 3000:3000"] def dockerSalixName = ["salix", "-p 3001:3001"] def dockerClientName = ["client", "-p 3002:3002"] def dockerMailerName = ["mailer", "-p 3003:3003"] def dockerProductionName = ["production", "-p 3004:3004"] def buildNumber = "${env.BUILD_NUMBER}"; def dockers = [dockerAuthName, dockerSalixName, dockerClientName, dockerMailerName, dockerProductionName, dockerNginxName] node { if (branchName == branchNameProd) prefixDocker = "prod"; stage ('Checkout') { checkout scm } stage ('install modules'){ sh "npm install" } stage ('build Project Salix'){ sh "gulp build" } for (int i = 0; i < dockers.size(); i++) { def element = dockers[i][0] def ports = dockers[i][1] stage ("docker ${element}") { stage ("Stopping ${prefixDocker}-${element} actual") { try { def returnDocker = sh (script: "docker stop ${prefixDocker}-${element}", returnStdout: true).trim(); echo "${returnDocker}"; returnDocker = sh (script: "docker rm ${prefixDocker}-${element}", returnStdout: false).trim(); //echo "${returnDocker}"; //returnDocker = sh (script: "docker rmi ${prefixDocker}-${element}:${buildNumber-3}", returnStdout: true).trim(); echo "borran ${prefixDocker}-${element}:${buildNumber-3}"; //echo "${returnDocker}"; }catch(Exception _){ echo "Error Stage Stopping" } } stage ("Create Docker Image ${element}") { dir("./services/${element}"){ stage ("Install modules service ${element}"){ if (fileExists('./package.json')) sh "npm i" } stage("Build image ${element}"){ image = docker.build("${prefixDocker}-${element}:${buildNumber}", ".") } } } stage ("Run Docker ${element}"){ image.run ("${ports} --name ${prefixDocker}-${element}") } /* stage('docker registry'){ docker.withServer('tcp://harbor.verdnatura.es','docker-registry') } */ } } }