node("docker && linux && amd64") { def images = [] def dockerNamespace = "icedream" def dockerBase = "disguised-guacamole" def dockerCredentials = "dockerhub_login_icedream" def dockerRegistry = "" def versions = [ // syntax: [ tomcatVersion, jreVersion ] ["8.5", "jre7"], ["8.5", "jre8"], ["9", "jre8"], ] def jreVersions = [ "jre7", "jre8", ] stage("Checkout") { checkout scm } stage("Build") { def imageVersion versions.forEach { versions -> def tomcatVersion = versions[0] def jreVersion = versions[1] def guacamoleVersion def image = docker.build("", "--build-arg TOMCAT_VERSION=${tomcatVersion} --build-arg JRE_VERSION=${jreVersion} .") image.inside("-w /tmp") { sh """ unzip /opt/guacamole/guacamole.war META-INF/maven/org.apache.guacamole/guacamole/pom.properties """ guacamoleVersion = sh( script: "grep -Po '(?i)^version=\\K.+\\s*\$' META-INF/maven/org.apache.guacamole/guacamole/pom.properties", returnStdout: true, ).trim() } def imageTag = "${dockerNamespace}/${dockerBase}:${guacamoleVersion}-tomcat${tomcatVersion}-jre${jreVersion}" images << [ image, imageFullName ] } } stage("Push") { images.forEach { imageData -> def image = imageData[0] def imageTag = imageData[1] image.push(imageTag) } } }