Workflow
Die folgenden Abschnitte beschreiben den typischen Arbeitsablauf und den täglichen Umgang mit den relevanten Containern in der lokalen Entwicklungsumgebung.
NPM-Dependencies
Abschnitt betitelt „NPM-Dependencies“Dependencies werden weder im dev-Container, noch im app-Container installiert. Stattdessen übernehmen der deps-Container bzw. der deps-update-Container diese Aufgabe.
docker compose -f .devcontainer/compose.yml run --rm depsWenn noch kein Lockfile vorhanden ist oder das Lockfile nicht zur package.json passt, muss der deps-update-Container genutzt werden:
docker compose -f .devcontainer/compose.yml run --rm deps-updateNeue Dependency hinzufügen
Abschnitt betitelt „Neue Dependency hinzufügen“Neue Dependencies (z.B. socket) werden über den deps-update-Container installiert:
docker compose -f .devcontainer/compose.yml run --rm deps-update socketVersion einer Dependency ändern
Abschnitt betitelt „Version einer Dependency ändern“Auch Versionsänderungen erfolgen über den deps-update-Container:
docker compose -f .devcontainer/compose.yml run --rm deps-update socket@^1.1.78Alternative: manuelle Anpassung der package.json
Abschnitt betitelt „Alternative: manuelle Anpassung der package.json“Alternativ können neue Dependencies oder Versionsänderungen manuell in der package.json auf dem Host-System oder im dev-Container vorgenommen werden.
Anschließend muss die Installation über den deps-update-Container erfolgen:
docker compose -f .devcontainer/compose.yml run --rm deps-updatedev Container starten
Abschnitt betitelt „dev Container starten“Im regulären Arbeitsablauf wird hauptsächlich innerhalb des dev-Containers in VS Code gearbeitet.
Dazu wird das Development Container Projekt in VS Code geöffnet und im Container gestartet:
Dev Containers: Reopen in ContainerApplikation starten
Abschnitt betitelt „Applikation starten“Die Anwendung wird im separaten app-Container gestartet:
docker compose -f .devcontainer/compose.yml --profile app up appDer Container läuft anschließend und die Anwendung ist lokal erreichbar, z.B. unter:
http://localhost:3000Der Container kann auch im Hintergrund gestartet werden:
docker compose -f .devcontainer/compose.yml --profile app up -d appClaude nutzen
Abschnitt betitelt „Claude nutzen“Weder der dev- noch der app-Container müssen laufen, um den ai-Container nutzen zu können.
Container starten
Abschnitt betitelt „Container starten“docker compose -f .devcontainer/compose.yml --profile ai up aioder wenn das Image neu gebaut werden muss (z.B. wenn sich die Version des Claude Code NPM-Packages in Dockerfile.claude geändert hat):
docker compose -f .devcontainer/compose.yml --profile ai up --build aiFür den ai-agent-Container entsprechend mit --profile ai-agent:
docker compose -f .devcontainer/compose.yml --profile ai-agent up ai-agentoder wenn das Image neu gebaut werden muss (gleiches Prinzip wie zuvor bei ai):
docker compose -f .devcontainer/compose.yml --profile ai-agent up --build ai-agentContainer prüfen
Abschnitt betitelt „Container prüfen“docker compose -f .devcontainer/compose.yml ps -aMit Container verbinden
Abschnitt betitelt „Mit Container verbinden“docker compose -f .devcontainer/compose.yml exec ai bashClaude starten:
claude