Docker-Compose-Pfad automatisch ermitteln (Compose-Labels) statt manueller Eingabe #31
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Frage (beantwortet): Kann der Agent den Compose-Pfad selbst finden?
Ja, zuverlässig — ohne Raten/Filesystem-Suche. Docker Compose (v2) setzt auf jeden erzeugten Container Labels:
com.docker.compose.project— Projektnamecom.docker.compose.project.working_dir— Verzeichnis, in demdocker composeliefcom.docker.compose.project.config_files— die konkreten Compose-Dateipfade (komma-separiert)com.docker.compose.service— Service-NameContainer ohne Compose (bare
docker run) haben die Labels nicht → kein Pfad (korrekt).Heutiger Stand
Compose-Pfade werden manuell gepflegt:
server/routers/docker_router.py/compose-config(GET/PATCHcompose_paths), Eingabe imDockerTab(composePathInput/saveComposeConfig). Die Agent-Commandsdocker.compose_check/docker.compose_update(Node-Agent/src/docker_compose.rs) bekommen denpathvon dort. Der Gast-Collectorcollect_dockererfasst perdocker psnur name/image/status/ports — keine Labels/Pfade.Soll: Auto-Discovery im Gast-Agent
1. Collector erweitern (Labels mitlesen)
VM-Guest-Agent/src/collect/linux.rs:194(analogcollect/freebsd.rs+Windows-VM-Guest-Agent/src/collect.rs): dasdocker ps --formatum die Compose-Labels erweitern, z. B.:(Alternative für reine Projekt-Sicht:
docker compose ls --format json→ liefertConfigPathsje laufendem Projekt.docker ps-Labels sind aber minimal und decken auch den Service ab.)2. Ingest / abgeleitete Liste
Backend-
vm_scan-Ingest: die neuen Felder je Container invm_scans[vmid].dockerdurchreichen und eine dedupliziertecompose_paths-Liste (distinctcompose_files) ableiten.3. Manuelle Pflege ablösen (optional, empfohlen)
Die entdeckten Pfade in die
DockerComposeConfigmergen, sodasscompose_check/compose_updateohne manuelle Eingabe funktionieren. DockerTab: entdeckte Pfade anzeigen (read-only), manuelles Hinzufügen nur noch für Sonderfälle.4. docgen (#17)
Die Docker-Sektion in
_vm_mdliest dannvm_scans[vmid].docker[*]inkl.compose_workdir/compose_files→ „Laufende Docker + Pfad".Caveats
project.config_fileskann mehrere Dateien (komma-separiert) enthalten.docker ps; gestoppte Compose-Projekte deckt das nicht ab → dafür bleibt die manuelle Config bzw.docker compose ls -a.Akzeptanz
cargo build(Linux/FreeBSD/Windows-Target) grün — vor Merge bauen.Bezug
Liefert den fehlenden Baustein für #17 (Docker-Pfad) und löst die manuelle
compose_paths-Pflege ab.Branch
feat/docker-compose-autodiscover