Spaces:
Running
Running
PanGalactic Claude Opus 4.6 commited on
Commit ·
28ffbae
1
Parent(s): f671471
Fix demo: use latest reachy-mini, skip media in DEMO_MODE
Browse files- Switch back to latest reachy-mini (1.3.1) — the Zenoh pub_status
error was a race condition from double-starting the daemon, not a
version bug. The startup script already avoids double-start.
- Add DEMO_MODE env var to Dockerfile + app.py check: when set,
request_media_backend="no_media" skips camera/audio init that
fails in headless containers (UDP camera stream not available).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Dockerfile.demo +3 -1
- hello_world/app.py +2 -0
Dockerfile.demo
CHANGED
|
@@ -28,6 +28,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
| 28 |
|
| 29 |
# MuJoCo headless rendering — OSMesa software renderer, no GPU required
|
| 30 |
ENV MUJOCO_GL=osmesa
|
|
|
|
|
|
|
| 31 |
|
| 32 |
# HuggingFace Spaces requires non-root user with uid 1000
|
| 33 |
RUN useradd -m -u 1000 user
|
|
@@ -37,7 +39,7 @@ ENV PATH="/home/user/.local/bin:${PATH}"
|
|
| 37 |
WORKDIR /home/user/app
|
| 38 |
|
| 39 |
# Install MuJoCo + reachy-mini SDK (provides reachy-mini-daemon command)
|
| 40 |
-
RUN pip install --no-cache-dir --user mujoco "reachy-mini
|
| 41 |
|
| 42 |
# Copy the hello_world app and install as editable package
|
| 43 |
# (editable so the daemon discovers it via entry points)
|
|
|
|
| 28 |
|
| 29 |
# MuJoCo headless rendering — OSMesa software renderer, no GPU required
|
| 30 |
ENV MUJOCO_GL=osmesa
|
| 31 |
+
# Demo mode — skips hardware media (camera/audio) in app init
|
| 32 |
+
ENV DEMO_MODE=1
|
| 33 |
|
| 34 |
# HuggingFace Spaces requires non-root user with uid 1000
|
| 35 |
RUN useradd -m -u 1000 user
|
|
|
|
| 39 |
WORKDIR /home/user/app
|
| 40 |
|
| 41 |
# Install MuJoCo + reachy-mini SDK (provides reachy-mini-daemon command)
|
| 42 |
+
RUN pip install --no-cache-dir --user mujoco "reachy-mini"
|
| 43 |
|
| 44 |
# Copy the hello_world app and install as editable package
|
| 45 |
# (editable so the daemon discovers it via entry points)
|
hello_world/app.py
CHANGED
|
@@ -8,6 +8,7 @@ Provides a Status dashboard with system telemetry and robot state.
|
|
| 8 |
__all__ = ['HelloWorld']
|
| 9 |
|
| 10 |
import logging
|
|
|
|
| 11 |
import threading
|
| 12 |
import time
|
| 13 |
import urllib.request
|
|
@@ -37,6 +38,7 @@ class HelloWorld(ReachyMiniApp):
|
|
| 37 |
"""A developer dashboard app for Reachy Mini with system telemetry."""
|
| 38 |
|
| 39 |
custom_app_url: str | None = "http://0.0.0.0:8042"
|
|
|
|
| 40 |
|
| 41 |
def __init__(self):
|
| 42 |
super().__init__()
|
|
|
|
| 8 |
__all__ = ['HelloWorld']
|
| 9 |
|
| 10 |
import logging
|
| 11 |
+
import os
|
| 12 |
import threading
|
| 13 |
import time
|
| 14 |
import urllib.request
|
|
|
|
| 38 |
"""A developer dashboard app for Reachy Mini with system telemetry."""
|
| 39 |
|
| 40 |
custom_app_url: str | None = "http://0.0.0.0:8042"
|
| 41 |
+
request_media_backend: str | None = "no_media" if os.environ.get("DEMO_MODE") else None
|
| 42 |
|
| 43 |
def __init__(self):
|
| 44 |
super().__init__()
|