fix(transcription): Behebt Start- und API-Fehler in der App [2f488f42]

This commit is contained in:
2026-01-26 14:15:23 +00:00
parent eb3f77f092
commit e57aa374ea
10 changed files with 427 additions and 162 deletions

View File

@@ -1,15 +1,25 @@
#!/bin/bash
# --- Konfiguration ---
# Der Name des finalen Containers, in dem die Gemini CLI läuft.
IMAGE_NAME="gemini-dev-env"
CONTAINER_NAME="gemini-session"
# --- Aufräumen ---
# Sicherstellen, dass der Config-Ordner existiert, damit Docker ihn als Ordner und nicht als Datei mountet
# Sicherstellen, dass der Config-Ordner existiert
mkdir -p .gemini-config
# Prüfen, ob das Docker-Image existiert und es bei Bedarf bauen
if ! docker image inspect "$IMAGE_NAME" &> /dev/null;
then
echo "Docker-Image '$IMAGE_NAME' nicht gefunden. Baue es jetzt aus 'gemini.Dockerfile'..."
docker build -t "$IMAGE_NAME" -f gemini.Dockerfile .
if [ $? -ne 0 ]; then
echo "FEHLER: Docker-Image konnte nicht gebaut werden."
exit 1
fi
fi
echo "Räume alte Docker-Container auf, falls vorhanden..."
# Entfernt den Haupt-Container und den temporären Container vom letzten Lauf
docker rm -f "$CONTAINER_NAME" > /dev/null 2>&1
docker rm -f "${CONTAINER_NAME}-temp" > /dev/null 2>&1
@@ -20,15 +30,15 @@ echo "Starte interaktive Entwicklungs-Session-Konfiguration..."
TEMP_FILE=$(mktemp)
# Führe dev_session.py in einem temporären, interaktiven Container aus.
# Die Ausgabe wird gleichzeitig im Terminal angezeigt (damit der User die Fragen sieht)
# und in die temporäre Datei geschrieben.
# Die Ausgabe (stdout & stderr) wird gleichzeitig im Terminal angezeigt und in die temporäre Datei geschrieben.
docker run -it --rm \
--env-file .env \
-v "$(pwd):/app" \
-v "$(pwd)/.gemini-config:/root/.config" \
-w /app \
--name "${CONTAINER_NAME}-temp" \
gemini-dev-env python3 dev_session.py | tee "$TEMP_FILE"
"$IMAGE_NAME" python3 dev_session.py 2>&1 | tee "$TEMP_FILE"
# Überprüfe, ob der vorherige Befehl erfolgreich war (exit code 0)
# Überprüfe, ob der Docker-Befehl erfolgreich war (exit code 0)
if [ ${PIPESTATUS[0]} -ne 0 ]; then
echo "------------------------------------------------------------------"
echo "❌ Fehler: Der Konfigurationsprozess wurde abgebrochen oder ist fehlgeschlagen."
@@ -39,8 +49,7 @@ if [ ${PIPESTATUS[0]} -ne 0 ]; then
fi
# Extrahiere den reinen CLI-Kontext aus der temporären Datei
# sed sucht nach den Markern und gibt nur den Text dazwischen aus
CLI_CONTEXT=$(sed -n '/---GEMINI_CLI_CONTEXT_START---/,/---GEMINI_CLI_CONTEXT_END---/p' "$TEMP_FILE" | sed '1d;$d')
CLI_CONTEXT=$(sed -n '/---GEMINI_CLI_CONTEXT_START---/,/---GEMINI_CLI_CONTEXT_END---/{//!p}' "$TEMP_FILE")
# Lösche die temporäre Datei
rm "$TEMP_FILE"
@@ -66,8 +75,8 @@ $CLI_CONTEXT"
# Starte den finalen Container mit der Gemini CLI
# --prompt-interactive übergibt den initialen Kontext
docker run -it --rm \
--env-file .env \
-v "$(pwd):/app" \
-v "$(pwd)/.gemini-config:/root/.config" \
-w /app \
--name "$CONTAINER_NAME" \
gemini-dev-env --prompt-interactive "$FULL_CONTEXT"
"$IMAGE_NAME" gemini --prompt-interactive "$FULL_CONTEXT"