From: Claude Date: Sun, 17 May 2026 15:03:21 +0000 (+0000) Subject: refactor: Docker-Build auf bootBuildImage (Cloud Native Buildpacks) umstellen X-Git-Tag: consumer/nodlt--BACKUP-ORIGIN--LAST X-Git-Url: http://juplo.de/gitweb/?a=commitdiff_plain;h=575c7e4cb09cd9e6bbcdd29380daa05177c84b39;p=demos%2Fkafka%2Ftraining refactor: Docker-Build auf bootBuildImage (Cloud Native Buildpacks) umstellen Bisher baute Maven den Docker-Image via io.fabric8:docker-maven-plugin und ein handgepflegtes Dockerfile. Gradle kopierte das JAR umständlich in ein target/-Verzeichnis, damit dasselbe Dockerfile funktioniert (COPY target/*.jar). Beide Build-Systeme nutzen jetzt bootBuildImage, das über Cloud Native Buildpacks direkt aus dem Spring Boot Plugin heraus ein OCI-Image erzeugt: Maven: mvn spring-boot:build-image Gradle: ./gradlew bootBuildImage Vorteile: - Kein Dockerfile mehr nötig (und damit kein Kopier-Hack in Gradle) - Beide Build-Systeme verwenden dieselbe Methode mit identischer Konfiguration - Das erzeugte Image folgt automatisch Best Practices (non-root, layered JAR) - io.fabric8:docker-maven-plugin und com.bmuschko.docker-remote-api entfallen Entfernte Dateien: Dockerfile, .dockerignore, .maven-dockerexclude, .maven-dockerinclude --- diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 6de8137a..00000000 --- a/.dockerignore +++ /dev/null @@ -1,3 +0,0 @@ -* -!Dockerfile -!target/*.jar diff --git a/.maven-dockerexclude b/.maven-dockerexclude deleted file mode 100644 index 72e8ffc0..00000000 --- a/.maven-dockerexclude +++ /dev/null @@ -1 +0,0 @@ -* diff --git a/.maven-dockerinclude b/.maven-dockerinclude deleted file mode 100644 index fd6cecd2..00000000 --- a/.maven-dockerinclude +++ /dev/null @@ -1 +0,0 @@ -target/*.jar diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 9e196ff0..00000000 --- a/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM eclipse-temurin:21-jre -VOLUME /tmp -COPY target/*.jar /opt/app.jar -ENTRYPOINT [ "java", "-jar", "/opt/app.jar" ] -CMD [] diff --git a/build.gradle b/build.gradle index f44d5d03..51613fb2 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,8 @@ -import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage - plugins { id 'java' id 'org.springframework.boot' version '4.0.2' id 'io.spring.dependency-management' version '1.1.7' id 'com.gorylenko.gradle-git-properties' version '2.4.2' - id 'com.bmuschko.docker-remote-api' version '9.3.3' } group = 'de.juplo.kafka' @@ -55,35 +52,6 @@ springBoot { buildInfo() } -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 +bootBuildImage { + imageName = "juplo/${project.name}:${project.version}" } diff --git a/pom.xml b/pom.xml index ac72994e..87daecb3 100644 --- a/pom.xml +++ b/pom.xml @@ -85,6 +85,11 @@ org.springframework.boot spring-boot-maven-plugin + + + juplo/${project.artifactId}:${project.version} + + @@ -97,27 +102,6 @@ pl.project13.maven git-commit-id-plugin - - io.fabric8 - docker-maven-plugin - 0.45.0 - - - - juplo/%a:%v - - - - - - build - package - - build - - - -