gr-mcp/docker/Dockerfile.gnuradio-runtime
Ryan Malloy 0afb2f5b6e runtime: Phase 2 ControlPort/Thrift integration
Add ControlPort/Thrift support as an alternative transport to XML-RPC:

New middleware:
- ThriftMiddleware wrapping GNURadioControlPortClient

New MCP tools:
- connect_controlport, disconnect_controlport
- get_knobs (with regex filtering), set_knobs (atomic)
- get_knob_properties (units, min/max, description)
- get_performance_counters (throughput, timing, buffers)
- post_message (PMT injection to block ports)

Docker support:
- enable_controlport param in launch_flowgraph
- ENABLE_CONTROLPORT env in entrypoint.sh
- ControlPort config generation in ~/.gnuradio/config.conf

Models: KnobModel, KnobPropertiesModel, PerfCounterModel,
ThriftConnectionInfoModel, plus ContainerModel updates.
2026-01-28 12:05:32 -07:00

29 lines
600 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
ENV CONTROLPORT_PORT=9090
EXPOSE 8080
EXPOSE 5900
EXPOSE 9090
ENTRYPOINT ["/entrypoint.sh"]