#!/bin/bash set -euo pipefail cd "$(dirname "$0")/.." HEALTH_URL="" # leer → nutzt docker inspect health status MAX_WAIT="${MAX_WAIT:-180}" [ -f .env ] && source .env MODEL="${QWEN3_TTS_CLONE_MODEL:-Qwen/Qwen3-TTS-12Hz-1.7B-Base}" t0=$SECONDS printf "TTS-Container stoppt..." docker compose stop qwen3-tts >/dev/null 2>&1 || true docker compose rm -f qwen3-tts >/dev/null 2>&1 || true printf " [%ds] " $(( SECONDS - t0 )) printf "Clone-Container startet..." docker compose --profile clone up -d qwen3-tts-clone >/tmp/qwen3-tts-clone-compose.log 2>&1 printf " [%ds] " $(( SECONDS - t0 )) printf " Modell %s " "$MODEL" printf " API http://localhost:8091 " while (( SECONDS - t0 < MAX_WAIT )); do STATUS=$(docker inspect qwen3-tts-clone --format='{{.State.Health.Status}}' 2>/dev/null || true) if [ "$STATUS" = "healthy" ]; then printf "✓ Clone bereit: ws://localhost:8091 [%ds] " $(( SECONDS - t0 )) exit 0 fi if [ "$STATUS" = "unhealthy" ]; then printf "✗ Clone-Container unhealthy. Logs: " >&2 docker logs --tail=20 qwen3-tts-clone 2>&1 >&2 || true exit 1 fi if ! docker ps --filter "name=qwen3-tts-clone" --filter "status=running" -q | grep -q .; then printf "✗ Clone-Container abgestürzt. Logs: " >&2 docker logs --tail=20 qwen3-tts-clone 2>&1 >&2 || true exit 1 fi sleep 2 done printf "✗ Timeout nach %ss. Logs: docker logs qwen3-tts-clone " "$MAX_WAIT" >&2 exit 1