diff --git a/scripts/portforward_container.py b/scripts/portforward_container.py index b2236d5..2be80f7 100755 --- a/scripts/portforward_container.py +++ b/scripts/portforward_container.py @@ -44,9 +44,17 @@ def get_port_mappings(ports): return port_list def start_container(): - """Запускает контейнер port-forward""" + """Запускает контейнер port-forward через k8s-controller""" print("🚀 Запуск контейнера k8s-portforward...") + # Проверяем, что k8s-controller запущен + result = subprocess.run(["docker", "ps", "--filter", "name=k8s-controller", "--format", "{{.Names}}"], + capture_output=True, text=True) + if "k8s-controller" not in result.stdout: + print("❌ Контейнер k8s-controller не запущен") + print("💡 Запустите: make k8s create kubernetes") + return + # Получаем порты из preset ports = get_ports_from_preset() port_mappings = get_port_mappings(ports) @@ -73,12 +81,10 @@ def start_container(): print(f"📋 Команда: {' '.join(cmd)}") - # Удаляем старый контейнер если существует - subprocess.run(["docker", "rm", "-f", CONTAINER_NAME], - capture_output=True, stderr=subprocess.DEVNULL) - - # Запускаем новый контейнер - result = subprocess.run(cmd, capture_output=True, text=True) + # Выполняем команду через k8s-controller + cmd_str = ' '.join(['"' + arg.replace('"', '\\"') + '"' for arg in cmd]) + result = subprocess.run(["docker", "exec", "k8s-controller", "sh", "-c", cmd_str], + capture_output=True, text=True) if result.returncode == 0: print(f"✅ Контейнер {CONTAINER_NAME} запущен") @@ -94,8 +100,18 @@ def start_container(): def stop_container(): """Останавливает контейнер port-forward""" print("🛑 Остановка контейнера k8s-portforward...") - result = subprocess.run(["docker", "stop", CONTAINER_NAME], + + # Проверяем, что k8s-controller запущен + result = subprocess.run(["docker", "ps", "--filter", "name=k8s-controller", "--format", "{{.Names}}"], capture_output=True, text=True) + if "k8s-controller" not in result.stdout: + print("⚠️ Контейнер k8s-controller не запущен, пытаемся остановить локально...") + result = subprocess.run(["docker", "stop", CONTAINER_NAME], + capture_output=True, text=True) + else: + # Останавливаем через k8s-controller + result = subprocess.run(["docker", "exec", "k8s-controller", "docker", "stop", CONTAINER_NAME], + capture_output=True, text=True) if result.returncode == 0: print(f"✅ Контейнер {CONTAINER_NAME} остановлен") @@ -111,9 +127,21 @@ def restart_container(): def status_container(): """Показывает статус контейнера""" print("📊 Статус контейнера k8s-portforward:") - result = subprocess.run(["docker", "ps", "-a", "--filter", f"name={CONTAINER_NAME}", - "--format", "table {{.Names}}\t{{.Status}}\t{{.Ports}}"], - capture_output=True, text=True) + + # Проверяем, что k8s-controller запущен + result = subprocess.run(["docker", "ps", "--filter", "name=k8s-controller", "--format", "{{.Names}}"], + capture_output=True, text=True) + if "k8s-controller" not in result.stdout: + print("⚠️ Контейнер k8s-controller не запущен, проверяем локально...") + result = subprocess.run(["docker", "ps", "-a", "--filter", f"name={CONTAINER_NAME}", + "--format", "table {{.Names}}\t{{.Status}}\t{{.Ports}}"], + capture_output=True, text=True) + else: + # Проверяем через k8s-controller + result = subprocess.run(["docker", "exec", "k8s-controller", "docker", "ps", "-a", + "--filter", f"name={CONTAINER_NAME}", + "--format", "table {{.Names}}\t{{.Status}}\t{{.Ports}}"], + capture_output=True, text=True) if result.returncode == 0: print(result.stdout)