`build.gradle` so erweitert, dass das Image gebaut werden kann grundlagen/simple-producer--2025-01-signal-gradle grundlagen/simple-producer--2025-02-signal
authorKai Moritz <kai@juplo.de>
Wed, 22 Jan 2025 18:33:54 +0000 (19:33 +0100)
committerKai Moritz <kai@juplo.de>
Wed, 22 Jan 2025 21:50:09 +0000 (22:50 +0100)
.dockerignore
build.gradle

index 49f82a9..9127d15 100644 (file)
@@ -1,3 +1,4 @@
 *
+!Dockerfile
 !target/*.jar
 !target/libs/*.jar
index c0d9134..be0bc47 100644 (file)
@@ -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
+}