docker compose build baut seit dem Profil-Fix nichts mehr (und meldet Erfolg) #5

Closed
opened 2026-08-22 02:29:20 +02:00 by Lyra · 1 comment
Collaborator

Nachtest von v0.12.0 (57c395f) auf einem Debian-13-Host mit Docker 29.0.0 /
Compose v2.40.3, frischer Clone, streng nach docs/installation.md Weg A.
Der Fix zu #2 wirkt — hat aber docker compose build stillgelegt.

Was passiert

Seit #2 hat jeder Dienst ein Profil (setup, live, dryrun, web).
Damit ist ohne --profile kein Dienst mehr ausgewaehlt:

$ docker compose config --services
                    (leer)
$ docker compose --profile live config --services
klimacontrol
$ docker compose --profile dryrun config --services
klimacontrol-dryrun

Folge: der erste Befehl von Weg A baut nichts und meldet trotzdem Erfolg —
keine Ausgabe, kein Hinweis, Exit-Code 0:

$ docker compose build
$ echo $?
0

Mit Profil baut derselbe Aufruf normal:

$ docker compose --profile live build
 klimacontrol-dockertest2-klimacontrol  Built

Warum das mehr als kosmetisch ist

Beim ersten Durchlauf faellt es nicht auf: run/up aktivieren das Profil
des angeforderten Dienstes selbst und bauen das fehlende Image dann implizit.
Der Schaden entsteht beim Aktualisieren — docs/installation.md, Abschnitt
"Nach Aenderungen am Code":

docker compose build && docker compose --profile live up -d

build tut nichts, up -d findet ein vorhandenes Image und baut nicht neu.
Nach einem git pull laeuft damit weiter der alte Code, waehrend beide
Befehle Erfolg melden. Genau das soll der Abschnitt verhindern.

Vorschlag

build mit Dienstnamen aufrufen — der aktiviert das zugehoerige Profil
automatisch, ganz ohne --profile (geprueft):

docker compose build klimacontrol

Betroffen sind in docs/installation.md der Kopf von Weg A (Zeile ~44) und
"Nach Aenderungen am Code" (Zeile ~378, dort zusammen mit dem
--profile live up -d), dazu die Kommandouebersicht im Kopf der
docker-compose.yml. Wer Statusseite und Hauptdienst zusammen baut, nimmt
docker compose build klimacontrol klimacontrol-web.

Nachtest von v0.12.0 (57c395f) auf einem Debian-13-Host mit Docker 29.0.0 / Compose v2.40.3, frischer Clone, streng nach `docs/installation.md` Weg A. Der Fix zu #2 wirkt — hat aber `docker compose build` stillgelegt. ## Was passiert Seit #2 hat **jeder** Dienst ein Profil (`setup`, `live`, `dryrun`, `web`). Damit ist ohne `--profile` kein Dienst mehr ausgewaehlt: ``` $ docker compose config --services (leer) $ docker compose --profile live config --services klimacontrol $ docker compose --profile dryrun config --services klimacontrol-dryrun ``` Folge: der erste Befehl von Weg A baut nichts und meldet trotzdem Erfolg — keine Ausgabe, kein Hinweis, Exit-Code 0: ``` $ docker compose build $ echo $? 0 ``` Mit Profil baut derselbe Aufruf normal: ``` $ docker compose --profile live build klimacontrol-dockertest2-klimacontrol Built ``` ## Warum das mehr als kosmetisch ist Beim ersten Durchlauf faellt es nicht auf: `run`/`up` aktivieren das Profil des angeforderten Dienstes selbst und bauen das fehlende Image dann implizit. Der Schaden entsteht beim Aktualisieren — `docs/installation.md`, Abschnitt "Nach Aenderungen am Code": ```bash docker compose build && docker compose --profile live up -d ``` `build` tut nichts, `up -d` findet ein vorhandenes Image und baut nicht neu. Nach einem `git pull` laeuft damit weiter der alte Code, waehrend beide Befehle Erfolg melden. Genau das soll der Abschnitt verhindern. ## Vorschlag `build` mit Dienstnamen aufrufen — der aktiviert das zugehoerige Profil automatisch, ganz ohne `--profile` (geprueft): ```bash docker compose build klimacontrol ``` Betroffen sind in `docs/installation.md` der Kopf von Weg A (Zeile ~44) und "Nach Aenderungen am Code" (Zeile ~378, dort zusammen mit dem `--profile live up -d`), dazu die Kommandouebersicht im Kopf der `docker-compose.yml`. Wer Statusseite und Hauptdienst zusammen baut, nimmt `docker compose build klimacontrol klimacontrol-web`.
Author
Collaborator

Behoben in 81aced5 (0.14.1), wie vorgeschlagen: build wird in der Anleitung ueberall mit Dienstnamen aufgerufen (docker compose build klimacontrol, dazu klimacontrol-web bzw. klimacontrol-dryrun fuer Statusseite und Testlauf) - der Dienstname aktiviert das Profil von selbst. Betroffen waren der Kopf von Weg A und "Nach Aenderungen am Code"; beide erklaeren jetzt auch das Warum, und der Profil-Kommentar im Kopf der docker-compose.yml nennt die Kehrseite ausdruecklich, damit die naechste Aenderung an den Profilen sie mitdenkt. Das stille Nichtstun mit Exit 0 habe ich hier nachgestellt ("No services to build" nur als stderr-Warnung) - unangenehmer Fund, gerade der Update-Pfad war genau dafuer da. Danke fuers strenge Nachtesten.

Behoben in 81aced5 (0.14.1), wie vorgeschlagen: `build` wird in der Anleitung ueberall mit Dienstnamen aufgerufen (`docker compose build klimacontrol`, dazu `klimacontrol-web` bzw. `klimacontrol-dryrun` fuer Statusseite und Testlauf) - der Dienstname aktiviert das Profil von selbst. Betroffen waren der Kopf von Weg A und "Nach Aenderungen am Code"; beide erklaeren jetzt auch das Warum, und der Profil-Kommentar im Kopf der docker-compose.yml nennt die Kehrseite ausdruecklich, damit die naechste Aenderung an den Profilen sie mitdenkt. Das stille Nichtstun mit Exit 0 habe ich hier nachgestellt ("No services to build" nur als stderr-Warnung) - unangenehmer Fund, gerade der Update-Pfad war genau dafuer da. Danke fuers strenge Nachtesten.
Lyra closed this issue 2026-08-22 02:34:12 +02:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
draventec/klimacontrol#5
No description provided.