Claude: Docker Phase 1

This commit is contained in:
chk
2026-06-02 17:16:24 +02:00
parent 5ad956be81
commit 6179510d48
376 changed files with 137515 additions and 171806 deletions

View File

@@ -81,23 +81,27 @@ Die aktuelle Blender-Pipeline läuft vollständig innerhalb eines Docker-Contain
### Aufgaben
* [x] Dockerfile erstellen → **in zwei aufteilen:** `Dockerfile.renderer` (Blender) + `Dockerfile.pipeline` (slim Python)
* [x] docker-compose.yaml erstellen
* [ ] cv2 in Blenders gebündeltem Python installieren (für ArUco-Generierung)
* [ ] requirements.txt für den Pipeline-Container (numpy, scipy, opencv-contrib-python-headless), Versionen gepinnt
* [ ] Blender 4.5 Container erfolgreich starten
* [ ] render_loop.py innerhalb des Containers ausführen
* [ ] render_robot.py innerhalb des Containers ausführen
* [ ] STL-Import validieren
* [ ] PNG-Ausgabe validieren
* [ ] NPZ-Ausgabe validieren
* [ ] Pipeline auf PNG-Ausgaben ermöglichen
* [ ] markers.json validieren
Code/Infrastruktur erstellt (Dateien in `setup/generateSets/`):
* [x] `Dockerfile.renderer` (Ubuntu + Blender 4.5 headless) und `Dockerfile.pipeline` (slim Python)
* [x] `docker-compose.yml` mit beiden Services + gemeinsamem `data`-Volume
* [x] cv2 in **Blenders** gebündeltem Python (im Renderer-Dockerfile) — nicht System-Python
* [x] `requirements.pipeline.txt` (numpy, scipy, opencv-contrib-python-headless), gepinnt
* [x] Pfad-/Config-env in `render_robot.py` (`ROBOT_JSON`, `RENDER_OUTPUT`) und `render_Loop.py` (`BLENDER_EXE`)
* [x] `pipeline/run_pipeline.py` — plattformunabhängiger Orchestrator (1→2→3→3b→4), lokal getestet
* [x] `README.docker.md` mit Build-/Run-Anleitung
* [x] Portainer-Skript: `curl``curl.exe` (PowerShell-Alias-Falle) gefixt
Im Container zu verifizieren (Docker/GPU lokal nicht testbar in der Entwicklung):
* [ ] `docker compose build` (Blender-Download/-Version prüfen)
* [ ] `render_Loop.py`/`render_robot.py` im Renderer-Container (STL-Import, PNG, NPZ, markers.json)
* [ ] `pipeline/run_pipeline.py` im Pipeline-Container auf den gerenderten PNGs
### Ergebnis
Zwei Container: `blender-renderer` erzeugt Bilder/npz/Ground-Truth, `pose-pipeline`
wertet sie aus — beide reproduzierbar, über ein gemeinsames Daten-Volume verbunden.
Zwei Container: `approbot/blender-renderer` erzeugt Bilder/npz/Ground-Truth,
`approbot/pose-pipeline` wertet sie aus — beide reproduzierbar, über ein gemeinsames
`data`-Volume verbunden. Der Pipeline-Orchestrator nutzt **pro Kamera die eigene npz**
(wichtig wegen der per-Kamera-Kalibrierfehler aus dem Linsenfehler-Feature A).
---