Files
Qwen3-tts/scripts/start_clone.sh

52 lines
1.5 KiB
Bash
Executable File

#!/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