52 lines
1.5 KiB
Bash
Executable File
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
|