gr-mcp/docker/Dockerfile.gnuradio-runtime
Ryan Malloy 2084c41228 runtime: Phase 1 Docker + XML-RPC control
Add RuntimeProvider with 17 MCP tools for controlling running flowgraphs:
- Container lifecycle: launch, list, stop, remove
- Connection: connect by URL or container name
- Variable control: list, get, set via XML-RPC introspection
- Flowgraph execution: start, stop, lock, unlock
- Visual feedback: screenshot capture, container logs

Docker is optional - 10 tools work without it for external flowgraphs.

Includes:
- DockerMiddleware wrapping docker.DockerClient
- XmlRpcMiddleware wrapping xmlrpc.client.ServerProxy
- Dockerfile with Xvfb + ImageMagick + VNC for headless QT
- 29 new unit tests (71 total)
2026-01-27 09:48:44 -07:00

27 lines
562 B
Docker

FROM librespace/gnuradio:latest
# Xvfb for headless QT rendering, ImageMagick for screenshots,
# Mesa for software OpenGL, x11vnc for optional visual debugging
RUN apt-get update && apt-get install -y --no-install-recommends \
xvfb \
x11vnc \
imagemagick \
mesa-utils \
libgl1-mesa-dri \
fonts-dejavu-core \
x11-utils \
&& rm -rf /var/lib/apt/lists/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
WORKDIR /flowgraphs
ENV DISPLAY=:99
ENV XMLRPC_PORT=8080
EXPOSE 8080
EXPOSE 5900
ENTRYPOINT ["/entrypoint.sh"]