| import com.bmuschko.gradle.docker.tasks.image.* |
| |
| plugins { |
| id 'com.bmuschko.docker-remote-api' |
| id "de.undercouch.download" version "4.1.0" |
| } |
| |
| docker { |
| registryCredentials { |
| url = "${-> configureKubernetes.ext.dockerRegistry.toString()}/v2/" |
| } |
| } |
| |
| class BuildDockerConfig extends Copy { |
| |
| } |
| |
| tasks.register("download40", Download) { |
| //src 'http://apache.mirrors.hoobly.com/cassandra/4.0-alpha4/apache-cassandra-4.0-alpha4-bin.tar.gz' |
| src 'https://downloads.apache.org/cassandra/4.0-beta1/apache-cassandra-4.0-beta1-bin.tar.gz' |
| dest "$buildDir/cassandra40/apache-cassandra-4.0-beta1-bin.tar.gz" |
| overwrite false |
| } |
| |
| tasks.register("cassandra40", BuildDockerConfig) { |
| from("src/Cassandra40") { |
| } |
| |
| from("src") { |
| include "docker-entrypoint.sh" |
| include "optimize-memory.sh" |
| } |
| |
| into "$buildDir/cassandra40/" |
| dependsOn download40 |
| |
| } |
| |
| tasks.register("generateDockerConfigs") { |
| doFirst { |
| mkdir "build" |
| } |
| dependsOn tasks.withType(BuildDockerConfig) |
| } |
| |
| def getRemoteTag(name) { |
| return "${configureKubernetes.ext.dockerRegistryWithoutProtocol}/${configureKubernetes.ext.dockerGroup}/${name}:${configureKubernetes.ext.dockerTag}".toString() |
| } |
| |
| tasks.register("buildImageCassandra40", DockerBuildImage) { |
| // the toString is required here, otherwise we get org.codehaus.groovy.runtime.GStringImpl cannot be cast to java.lang.String |
| def name = "cassandra40" |
| def localTag = "${name}:${configureKubernetes.ext.dockerTag}".toString() |
| |
| // there might not be a group |
| def remoteTag = getRemoteTag(name) |
| // tag the private repo |
| tags = [localTag, remoteTag] |
| inputDir = file("$buildDir/${name}") |
| dependsOn "cassandra40" |
| } |
| |
| tasks.register("publishCassandra40", DockerPushImage) { |
| def name = "cassandra40" |
| imageName = "${configureKubernetes.ext.dockerRegistryWithoutProtocol}/${configureKubernetes.ext.dockerGroup}/${name}" |
| |
| dependsOn buildImageCassandra40 |
| } |
| |
| tasks.register("buildAll") { |
| dependsOn tasks.withType(DockerBuildImage) |
| } |
| tasks.register("pushAll") { |
| dependsOn tasks.withType(DockerPushImage) |
| dependsOn "buildAll" |
| } |