| services: | |
| # Driver + navigation (Nav2/SLAM). Default profile — `docker compose up go2`. | |
| go2: | |
| build: | |
| context: .. | |
| dockerfile: docker/Dockerfile | |
| image: go2-nav-vla:latest | |
| environment: | |
| - ROBOT_IP=${ROBOT_IP:?set ROBOT_IP to your Go2's LAN address} | |
| - ROBOT_TOKEN=${ROBOT_TOKEN:-} | |
| - CONN_TYPE=${CONN_TYPE:-webrtc} | |
| - DISPLAY=${DISPLAY:-} | |
| volumes: | |
| - /tmp/.X11-unix:/tmp/.X11-unix:ro # X11 forwarding, e.g. for rviz2 | |
| - ${HOME}/.Xauthority:/root/.Xauthority:rw | |
| network_mode: host # required: ROS 2 DDS discovery + Go2 WebRTC live on the LAN | |
| privileged: true # required: joystick/input device access | |
| devices: | |
| - /dev/input:/dev/input | |
| restart: unless-stopped | |
| command: ["ros2", "launch", "go2_navigation", "bringup.launch.py"] | |
| # Local VLA brain (Qwen2.5-VL) + web console, port 8001. Opt-in: | |
| # docker compose --profile vla up vlm | |
| # Requires the NVIDIA Container Toolkit on the host for GPU access. | |
| vlm: | |
| extends: go2 | |
| profiles: ["vla"] | |
| working_dir: /ros2_ws/src | |
| deploy: | |
| resources: | |
| reservations: | |
| devices: | |
| - driver: nvidia | |
| count: all | |
| capabilities: [gpu] | |
| command: ["./vlm/scripts/run_demo1.sh"] | |