From: Kai Moritz Date: Wed, 22 Jan 2025 18:33:54 +0000 (+0100) Subject: `build.gradle` so erweitert, dass das Image gebaut werden kann X-Git-Tag: grundlagen/simple-producer--2025-01-signal-gradle X-Git-Url: https://juplo.de/gitweb/?a=commitdiff_plain;h=a6bd18a8afc9bef794b7d5220f0b98c04ecd032c;p=demos%2Fkafka%2Ftraining `build.gradle` so erweitert, dass das Image gebaut werden kann --- diff --git a/.dockerignore b/.dockerignore index 49f82a91..9127d15f 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,4 @@ * +!Dockerfile !target/*.jar !target/libs/*.jar diff --git a/build.gradle b/build.gradle index c0d91348..be0bc470 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,10 @@ +import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage + plugins { id 'java' id 'org.springframework.boot' version '3.4.1' id 'io.spring.dependency-management' version '1.1.7' + id 'com.bmuschko.docker-remote-api' version '9.3.3' } group = 'de.juplo.kafka' @@ -29,3 +32,36 @@ dependencies { compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' } + +docker { + // Optional: Konfiguriere den Docker-Host, falls nötig + // url = 'unix:///var/run/docker.sock' (Standard) +} + + +def targetDir = file("${projectDir}/target") +def appJarName = "${project.name}-${project.version}.jar" + +// Task zum Bereinigen des `target`-Verzeichnisses bei `clean` +clean { + delete targetDir +} + +// Task zum Kopieren des Haupt-JARs +task copyJar(type: Copy) { + from "$buildDir/libs/${appJarName}" + into targetDir + dependsOn build + + doFirst { + def libs = file("${targetDir}/libs") + mkdir(libs) + } +} + +// Docker-Task +task buildDockerImage(type: DockerBuildImage) { + inputDir = file('.') + images = ["juplo/${project.name}:${project.version}"] + dependsOn copyJar +}