# Entorno del curso de Computación Centrada en Redes: C, herramientas de redes
# y Containerlab. Imagen nativa (amd64 o arm64): funciona igual en Linux,
# Windows (WSL2) y macOS, incluido Apple Silicon, sin emulación.
FROM debian:trixie-slim

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
        build-essential gdb valgrind make git ca-certificates curl vim nano less tree man-db procps \
        iproute2 iputils-ping traceroute mtr-tiny tcpdump tshark iperf3 \
        dnsutils netcat-openbsd openssl nftables wireguard-tools \
        python3 python3-matplotlib docker-cli \
    && rm -rf /var/lib/apt/lists/*

# Containerlab: el mismo paquete para las dos arquitecturas.
ARG CLAB_VERSION=0.82.0
RUN arch="$(dpkg --print-architecture)" \
    && curl -fsSL -o /tmp/clab.deb \
       "https://github.com/srl-labs/containerlab/releases/download/v${CLAB_VERSION}/containerlab_${CLAB_VERSION}_linux_${arch}.deb" \
    && apt-get update && apt-get install -y --no-install-recommends /tmp/clab.deb \
    && rm -rf /tmp/clab.deb /var/lib/apt/lists/*

# En Linux y WSL2 los repositorios montados pertenecen a otro usuario; sin esto,
# git (que corre como root) los rechaza por "dubious ownership".
RUN git config --system --add safe.directory '*'

CMD ["bash"]
