plugins { id 'com.bmuschko.docker-remote-api' version '3.4.4' } evaluationDependsOn(":node:capsule") import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage import com.bmuschko.gradle.docker.tasks.image.DockerPushImage import java.time.LocalDateTime import java.time.format.DateTimeFormatter apply plugin: 'kotlin' apply plugin: 'application' // We need to set mainClassName before applying the shadow plugin. mainClassName = 'net.corda.core.ConfigExporterMain' apply plugin: 'com.github.johnrengelman.shadow' dependencies{ compile project(':node') } shadowJar { baseName = 'config-exporter' classifier = null version = null zip64 true } docker{ registryCredentials { url = System.env.DOCKER_URL username = System.env.DOCKER_USERNAME password = System.env.DOCKER_PASSWORD } } task buildDockerFolder(dependsOn: [":node:capsule:buildCordaJAR", shadowJar]) { doLast { def cordaJar = project(":node:capsule").buildCordaJAR.archivePath project.copy { into new File(project.buildDir, "docker-temp") from "src/bash/run-corda.sh" from cordaJar from shadowJar.archivePath from "src/config/starting-node.conf" from "src/bash/generate-config.sh" from "src/docker/DockerfileAL" from "src/docker/Dockerfile" rename(cordaJar.name, "corda.jar") rename(shadowJar.archivePath.name, "config-exporter.jar") } } } final String runTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) final String suffix = project.version.toString().toLowerCase().contains("snapshot") ? runTime : "RELEASE" final zuluBuildTags = ["corda/corda-zulu-${project.version.toString().toLowerCase()}:${suffix}", "corda/corda-zulu-${project.version.toString().toLowerCase()}:latest"] final correttoBuildTags = ["corda/corda-corretto-${project.version.toString().toLowerCase()}:${suffix}", "corda/corda-corretto-${project.version.toString().toLowerCase()}:latest"] task buildOfficialZuluDockerImage(type: DockerBuildImage, dependsOn: [buildDockerFolder]) { inputDir = new File(project.buildDir, "docker-temp") tags = zuluBuildTags dockerFile = new File(new File(project.buildDir, "docker-temp"), "Dockerfile") } task buildOfficialCorrettoDockerImage(type: DockerBuildImage, dependsOn: [buildDockerFolder]) { inputDir = new File(project.buildDir, "docker-temp") tags = correttoBuildTags dockerFile = new File(new File(project.buildDir, "docker-temp"), "DockerfileAL") } task pushZuluTimeStampedTag('type': DockerPushImage, dependsOn: [buildOfficialZuluDockerImage]){ imageName = zuluBuildTags[0] } task pushZuluLatestTag('type': DockerPushImage, dependsOn: [buildOfficialZuluDockerImage]){ imageName = zuluBuildTags[1] } task pushCorrettoTimeStampedTag('type': DockerPushImage, dependsOn: [buildOfficialCorrettoDockerImage]){ imageName = correttoBuildTags[0] } task pushCorrettoLatestTag('type': DockerPushImage, dependsOn: [buildOfficialCorrettoDockerImage]){ imageName = correttoBuildTags[1] } task pushOfficialImages(dependsOn: [pushZuluTimeStampedTag, pushZuluLatestTag, pushCorrettoTimeStampedTag, pushCorrettoLatestTag])