blob: 23ea758cddb621b5f6d570d33e036d15c86e6a93 [file] [log] [blame]
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"
}