obmp-docker/exabgp/Dockerfile
sam 233dadbb41 Add ExaBGP route injector, Grafana dashboards, and full documentation
- Add exabgp/ container: ExaBGP 5.x + Flask REST API for on-demand BGP
  route injection into CML IOS-XR lab (AS 65020 via eBGP from AS 65100)
- Add 6 injection scenarios: internet_sample, churn, blackhole, anycast,
  full_table, lab_prefixes
- Add inject.py CLI wrapper for the ExaBGP API
- Add iosxr_bgp_config.md with IOS-XR neighbor config and NETCONF script
- Add obmp-grafana/ dashboards and provisioning (17 dashboards)
- Update docker-compose.yml: add exabgp service, fix Kafka external
  listener IP, extend log retention from 90min to 720min
- Add DOCS.md: full project documentation including architecture, setup,
  user guide, sanity checks, troubleshooting, and command reference
- Update .gitignore: exclude .env and .claude/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 14:46:37 -07:00

20 lines
463 B
Docker

FROM python:3.11-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
procps \
&& rm -rf /var/lib/apt/lists/*
# Install ExaBGP and Flask API dependencies
RUN pip install --no-cache-dir exabgp flask requests
# ExaBGP writes its own config at startup; we just need the source tree
COPY . /exabgp/
WORKDIR /exabgp
RUN chmod +x /exabgp/startup.sh /exabgp/inject.py
# Flask API port
EXPOSE 5050
CMD ["/bin/bash", "/exabgp/startup.sh"]