---
okf: "0.1"
type: incident
visibility: private
status: active
updated: 2026-08-03
links:
  - ../phases/backlog.md
---

## Bug: deploy-node.sh nie przebudowuje obrazu — deploy "OK" ale nowy kod nie wchodzi (2026-07-15) — ✅ ZROBIONE (2026-07-16, commit `77defff`)

**Objaw.** `deploy-node.sh <serwis>` robi `docker compose up -d` BEZ `--build`. Dla
serwisów z Dockerfile (ha-diag-agent, node-agent, llm-gateway, brain-watchdog, itd.),
gdy zmienia się TYLKO kod (nie compose/env), compose widzi "kontener działa, obraz ten
sam" → status `Running` (0.0s), NIE przebudowuje i NIE recreatuje. Nowy kod z repo NIE
wchodzi w życie mimo `git pull` i "Deployment Complete".

**Skutek — cicha rozbieżność repo↔runtime.** Deploy raportuje sukces, a kontener biega
na starym obrazie. Ugryzło DWA razy: fleet-prometheus (config nie wchodził bez
force-recreate) i ha-diag-agent 2026-07-15 (fix node_name był w repo `f2ba81b`, ale
`Running` zamiast rebuild — trzeba było ręcznego `docker compose up -d --build
--force-recreate`).

**Root cause.** deploy-node.sh (~linia 110) w pętli deployu: brak `--build` w wywołaniu
compose. Docker cache'uje obraz po tagu, nie po zawartości src/.
compose. Docker cache'uje obraz po tagu, nie po zawartości src/.

**Fix — ZROBIONE (2026-07-16, `77defff`).** deploy-node.sh wywołuje teraz `--build`
warunkowo, gdy serwis ma top-level `Dockerfile` (`test -f services/<svc>/Dockerfile`);
prebuilt serwisy bez `--build` (no-op). Zweryfikowane w boju na PIHA: 6 serwisów
(node-agent/ha-diag/brain-watchdog/llm-gateway → Building; vikunja/kb-postgres → prebuilt).
**Follow-up pozostawiony**: `agent-system` ma build w podkatalogach bez top-level
Dockerfile — niezarejestrowany przez tę detekcję, osobny task.

