diff --git a/apps/api/src/services/docker.py b/apps/api/src/services/docker.py index 0ce0293..9ccaaef 100644 --- a/apps/api/src/services/docker.py +++ b/apps/api/src/services/docker.py @@ -258,8 +258,29 @@ def start_cloudflared_tunnel( import subprocess import time import re + import logging + + logger = logging.getLogger(__name__) + + # First verify the container is accessible + logger.info("Checking connectivity to %s:%d...", container_name, port) + for attempt in range(10): + check = subprocess.run( + ["curl", "-s", "-o", "/dev/null", "-w", "%{http_code}", + f"http://{container_name}:{port}"], + capture_output=True, + text=True, + timeout=5, + ) + logger.info("Connectivity check %d: http_code=%s", attempt + 1, check.stdout.strip()) + if check.returncode == 0: + break + time.sleep(1) + else: + logger.warning("Container %s:%d not responding to curl checks", container_name, port) # Run cloudflared in background, capture output + logger.info("Starting cloudflared tunnel to http://%s:%d", container_name, port) proc = subprocess.Popen( ["cloudflared", "tunnel", "--url", f"http://{container_name}:{port}"], stdout=subprocess.PIPE,