#!/usr/bin/env bash # Tablo2SQL-TR - Docker ile baslatici (macOS / Linux) # ./docker_baslat.sh uygulamayi baslatir ve tarayicida acar # ./docker_baslat.sh yeniden-kur imaji sifirdan yeniden kurar # ./docker_baslat.sh durdur uygulamayi durdurur set -u cd "$(dirname "$0")" if ! command -v docker >/dev/null 2>&1; then echo "[HATA] Docker bulunamadi. Kurulum: https://www.docker.com/products/docker-desktop/" echo " Docker olmadan: ./baslat.sh" exit 1 fi if [ "${1:-}" = "durdur" ]; then docker compose stop uygulama && echo "Uygulama durduruldu (konteyner silinmedi)." exit $? fi if ! docker info >/dev/null 2>&1; then echo "Docker calismiyor, baslatiliyor..." if [ "$(uname)" = "Darwin" ]; then open -a Docker || true; fi for _ in $(seq 1 36); do sleep 5 docker info >/dev/null 2>&1 && break done if ! docker info >/dev/null 2>&1; then echo "[HATA] Docker 3 dakika icinde hazir olmadi. Docker'i elle baslatip tekrar deneyin." exit 1 fi fi echo "[tamam] Docker calisiyor." if [ "${1:-}" = "yeniden-kur" ] || ! docker image inspect tablo2sql-tr:1.0 >/dev/null 2>&1; then echo "Imaj kuruluyor. Ilk seferde 5-10 dakika surebilir..." docker compose build || exit 1 fi docker compose up -d uygulama || exit 1 for _ in $(seq 1 60); do curl -fs http://localhost:8501/_stcore/health >/dev/null 2>&1 && break sleep 2 done URL="http://localhost:8501" if command -v open >/dev/null 2>&1; then open "$URL"; elif command -v xdg-open >/dev/null 2>&1; then xdg-open "$URL" >/dev/null 2>&1 & fi echo echo "[tamam] Uygulama acik: $URL" echo "Kapatmak icin: ./docker_baslat.sh durdur"