From 71df6f7474fbbc3164839299172fd8ed42667018 Mon Sep 17 00:00:00 2001 From: Vuong Hoang Date: Sun, 31 May 2026 13:34:33 -0700 Subject: [PATCH] fix(zonos): add missing gradio launch command MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Upstream Zyphra/Zonos ships no CMD in its Dockerfile (it launches the app from its own compose), so our container ran the NVIDIA entrypoint, printed the CUDA banner, exited 0, and restart-looped — nothing ever bound 7860/8199. Add command: python3 gradio_interface.py to match upstream, plus an explicit GRADIO_SHARE=False. Built + deployed to irv-ml1; 8199 now serves HTTP 200 and the transformer model loads. --- stacks/zonos/compose.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/stacks/zonos/compose.yaml b/stacks/zonos/compose.yaml index 0ff3248..0cd42a5 100644 --- a/stacks/zonos/compose.yaml +++ b/stacks/zonos/compose.yaml @@ -29,6 +29,11 @@ services: container_name: zonos restart: unless-stopped runtime: nvidia + # Upstream's Dockerfile sets NO CMD — it launches the app from its own + # compose instead. Without this the NVIDIA entrypoint prints the CUDA + # banner and exits 0, looping forever (nothing binds 7860). Mirror + # upstream: python3 gradio_interface.py (demo.launch binds 0.0.0.0:7860). + command: ["python3", "gradio_interface.py"] ports: - "${ZONOS_BIND:-0.0.0.0}:${ZONOS_PORT}:7860" environment: @@ -37,6 +42,10 @@ services: # Make Gradio bind all interfaces inside the container so the host # port-map reaches it (Gradio otherwise may bind 127.0.0.1 only). - GRADIO_SERVER_NAME=0.0.0.0 + # Explicit: gradio_interface.py reads GRADIO_SHARE (defaults False). + # Pin it off so a missing default never tries a public share tunnel + # (irv-ml1 has no egress for that). + - GRADIO_SHARE=False - HF_HOME=/app/hf_cache volumes: - ${ZONOS_CACHE_DIR}:/app/hf_cache