]> juplo.de Git - demos/kafka/training/commitdiff
CLAUDE.md: Docker-Image-Naming und infrastruktur-only Branches dokumentiert
authorKai Moritz <kai.milan.moritz@googlemail.com>
Sat, 23 May 2026 06:53:53 +0000 (06:53 +0000)
committerKai Moritz <kai.milan.moritz@googlemail.com>
Sat, 23 May 2026 06:53:53 +0000 (06:53 +0000)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
CLAUDE.md

index 2378f5488f484a7e1e1630e9ca1e934572b20854..77ddfe2485b2efed0a22630198ba0ce428427ffe 100644 (file)
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -84,6 +84,8 @@ A typical exercise branch contains:
 - `pom.xml` and/or `build.gradle` — Maven/Gradle build (Java 21, Spring Boot 4.0.2)
 - `src/` — Java source code (group `de.juplo.kafka`)
 
+Some branches contain **only** a `docker/docker-compose.yml` with no build files or source. These are infrastructure-only setups for exercises where students experiment further with Kafka clients they have already written in a previous exercise.
+
 Run an exercise:
 ```bash
 git checkout <branch>
@@ -92,6 +94,18 @@ git checkout <branch>
 ./README.sh cleanup   # tear down Docker, clean build artifacts
 ```
 
+### Docker Image Naming in `docker-compose.yml`
+
+The `producer`, `consumer`, or application service in `docker-compose.yml` always references the **exact image that the exercise builds**, using this naming schema:
+
+```
+juplo/<artifactId>:<version>
+```
+
+where `<artifactId>` matches `pom.xml`'s `<artifactId>` (Maven) or `settings.gradle`'s `rootProject.name` (Gradle), and `<version>` matches `<version>` / `version`. The current standard version is `1.0-SNAPSHOT`.
+
+**When reviewing or rebasing a branch, always verify** that the image name and version in `docker-compose.yml` match what the build files actually produce. Mismatches are implementation errors and must be flagged and corrected.
+
 ## Scripting Branch Scripts
 
 All scripts source `BRANCHES.sh` first, which defines the full branch list and parent relationships.