#!/usr/bin/env python3 """ Скрипт для запуска проекта в режиме разработки """ import subprocess import sys import os def run_command(command, description): """Выполнение команды с выводом""" print(f"🔄 {description}...") try: result = subprocess.run(command, shell=True, check=True, capture_output=True, text=True) print(f"✅ {description} выполнено успешно") return True except subprocess.CalledProcessError as e: print(f"❌ Ошибка при {description.lower()}:") print(f" Команда: {command}") print(f" Ошибка: {e.stderr}") return False def main(): print("🚀 Запуск проекта в режиме разработки") print("=" * 50) # Останавливаем продакшн контейнеры если они запущены if run_command("docker compose ps", "Проверка статуса контейнеров"): if "Up" in subprocess.run("docker compose ps", shell=True, capture_output=True, text=True).stdout: print("🛑 Останавливаю продакшн контейнеры...") run_command("docker compose down", "Остановка продакшн контейнеров") # Запускаем режим разработки print("\n🔧 Запуск режима разработки...") if run_command("docker compose -f docker-compose.dev.yml up -d", "Запуск контейнеров разработки"): print("\n🎉 Проект запущен в режиме разработки!") print("\n📍 Доступные сервисы:") print(" • Streamlit: http://localhost:8501") print(" • FastAPI: http://localhost:8000") print(" • MinIO Console: http://localhost:9001") print("\n💡 Теперь изменения в streamlit_app/ будут автоматически перезагружаться!") print("\n🛑 Для остановки используйте:") print(" docker compose -f docker-compose.dev.yml down") else: print("\n❌ Не удалось запустить проект в режиме разработки") sys.exit(1) if __name__ == "__main__": main()