Docker-Container-Leitfaden
Andere Sprachen
Symbi stellt einen einheitlichen Docker-Container mit allen Funktionen bereit, verfuegbar ueber die GitHub Container Registry.
Verfuegbares Image
Einheitlicher Symbi-Container
- Image:
ghcr.io/thirdkeyai/symbi:latest - Zweck: All-in-One-Container mit DSL-Parsing, Agenten-Laufzeit und MCP-Server
- Groesse: ~80MB (inkl. Vektordatenbank und HTTP-API-Unterstuetzung)
- CLI: Einheitlicher
symbi-Befehl mit Unterbefehlen fuer verschiedene Operationen
Schnellstart
Vorgefertigtes Image verwenden
# Neuestes Image herunterladen
docker pull ghcr.io/thirdkeyai/symbi:latest
# Eine DSL-Datei parsen
docker run --rm -v $(pwd):/workspace \
ghcr.io/thirdkeyai/symbi:latest \
dsl --file /workspace/agent.dsl
# MCP-Server starten (stdio-basiert, kein Port erforderlich)
docker run --rm -i \
ghcr.io/thirdkeyai/symbi:latest \
mcp
# Mit HTTP-API starten
docker run --rm -p 8080:8080 \
ghcr.io/thirdkeyai/symbi:latest \
up --http-bind 0.0.0.0:8080
Entwicklungs-Workflow
# Interaktive Entwicklung
docker run --rm -it -v $(pwd):/workspace \
ghcr.io/thirdkeyai/symbi:latest bash
# Entwicklung mit Volume-Mounts und Ports
docker run --rm -it \
-v $(pwd):/workspace \
-p 8080:8080 \
-p 3000:3000 \
ghcr.io/thirdkeyai/symbi:latest bash
Verfuegbare Tags
latest- Neuestes stabiles Releasemain- Neuester Entwicklungs-Buildv1.0.0- Spezifische Versionsreleasessha-<commit>- Spezifische Commit-Builds
Lokal bauen
Einheitlicher Symbi-Container
# Vom Projektstammverzeichnis
docker build -t symbi:latest .
# Build testen
docker run --rm symbi:latest --version
# DSL-Parsing testen
docker run --rm -v $(pwd):/workspace symbi:latest dsl --help
# MCP-Server testen
docker run --rm symbi:latest mcp
Multi-Architektur-Unterstuetzung
Images werden gebaut fuer:
linux/amd64(x86_64)linux/arm64(ARM64/Apple Silicon)
Docker laedt automatisch die korrekte Architektur fuer Ihre Plattform herunter.
Sicherheitsfunktionen
Ausfuehrung als Nicht-Root
- Container laufen als Nicht-Root-Benutzer
symbi(UID 1000) - Minimale Angriffsflaeche mit sicherheitsgehaerteten Basis-Images
Schwachstellenscanning
- Alle Images werden automatisch mit Trivy gescannt
- Sicherheitshinweise werden im GitHub-Security-Tab veroeffentlicht
- SARIF-Berichte fuer detaillierte Schwachstellenanalyse
Konfiguration
Umgebungsvariablen
Symbi-Container:
RUST_LOG- Logging-Level festlegen (debug, info, warn, error)SYMBIONT_VECTOR_BACKEND- Vektor-Backend:lancedb(Standard) oderqdrantQDRANT_URL- Qdrant-Vektordatenbank-URL (nur bei Verwendung des optionalen Qdrant-Backends)
Volume-Mounts
# Agentendefinitionen mounten
-v $(pwd)/agents:/var/lib/symbi/agents
# Konfiguration mounten
-v $(pwd)/config:/etc/symbi
# Datenverzeichnis mounten
-v symbi-data:/var/lib/symbi/data
Docker Compose Beispiel
Standardmaessig verwendet Symbiont LanceDB als eingebettete Vektordatenbank – keine externen Dienste erforderlich. Wenn Sie ein verteiltes Vektor-Backend fuer skalierte Deployments benoetigen, koennen Sie optional Qdrant hinzufuegen.
Minimal (LanceDB-Standard – kein Qdrant erforderlich)
version: '3.8'
services:
symbi:
image: ghcr.io/thirdkeyai/symbi:latest
ports:
- "8080:8080"
- "3000:3000"
volumes:
- ./agents:/var/lib/symbi/agents
- ./config:/etc/symbi
- symbi-data:/var/lib/symbi/data
environment:
- RUST_LOG=info
command: ["up", "--http-bind", "0.0.0.0:8080"]
volumes:
symbi-data:
Mit optionalem Qdrant-Backend
version: '3.8'
services:
symbi:
image: ghcr.io/thirdkeyai/symbi:latest
ports:
- "8080:8080"
- "3000:3000"
volumes:
- ./agents:/var/lib/symbi/agents
- ./config:/etc/symbi
- symbi-data:/var/lib/symbi/data
environment:
- RUST_LOG=info
- SYMBIONT_VECTOR_BACKEND=qdrant
- QDRANT_URL=http://qdrant:6334
depends_on:
- qdrant
command: ["up", "--http-bind", "0.0.0.0:8080"]
qdrant:
image: qdrant/qdrant:latest
ports:
- "6333:6333"
- "6334:6334"
volumes:
- qdrant-data:/qdrant/storage
volumes:
symbi-data:
qdrant-data:
Fehlerbehebung
Haeufige Probleme
Zugriff verweigert:
# Korrektes Eigentum sicherstellen
sudo chown -R 1000:1000 ./data
# Oder anderen Benutzer verwenden
docker run --user $(id -u):$(id -g) ...
Port-Konflikte:
# Andere Ports verwenden
docker run -p 8081:8080 ghcr.io/thirdkeyai/symbi:latest
Build-Fehler:
# Docker-Cache leeren
docker builder prune -a
# Ohne Cache neu bauen
docker build --no-cache -f runtime/Dockerfile .
Gesundheitspruefungen
# Container-Gesundheit pruefen
docker run --name symbi-test -d ghcr.io/thirdkeyai/symbi:latest up --http-bind 0.0.0.0:8080
docker exec symbi-test /usr/local/bin/symbi --version
docker rm -f symbi-test
Performance-Optimierung
Ressourcenlimits
# Speicher- und CPU-Limits setzen
docker run --memory=512m --cpus=1.0 \
ghcr.io/thirdkeyai/symbi:latest mcp
Build-Optimierung
# BuildKit fuer schnellere Builds verwenden
DOCKER_BUILDKIT=1 docker build .
# Multi-Stage-Caching
docker build --target builder -t symbi-builder .
docker build --cache-from symbi-builder .
CI/CD-Integration
GitHub Actions baut und veroeffentlicht Container automatisch bei:
- Push auf den
main-Branch - Neue Versions-Tags (
v*) - Pull Requests (nur Build)
Images enthalten Metadaten:
- Git-Commit-SHA
- Build-Zeitstempel
- Schwachstellen-Scan-Ergebnisse
- SBOM (Software Bill of Materials)