FROM rockylinux:10

RUN dnf install -y epel-release && \
    crb enable && \
    dnf install -y --allowerasing \
    clang llvm \
    bpftool \
    iproute iproute-tc \
    elfutils-libelf-devel \
    zlib-devel \
    libbpf-devel \
    kernel-headers \
    tcpdump \
    net-tools \
    iputils \
    curl wget \
    git \
    gh \
    vim \
    ethtool \
    nodejs24 \
    nodejs24-npm \
    m4 \
    make pkg-config \
    openssl-devel \
    && dnf clean all

RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.95.0 \
    && /root/.cargo/bin/rustup component add clippy rustfmt --toolchain 1.95.0 \
    && /root/.cargo/bin/rustup toolchain install nightly --component rust-src \
    && /root/.cargo/bin/rustup default 1.95.0
ENV PATH="/root/.cargo/bin:${PATH}"

RUN cargo install bpf-linker --version 0.10.3 --locked

RUN ln -s /usr/bin/node-24 /usr/local/bin/node && \
    ln -s /usr/bin/npm-24 /usr/local/bin/npm && \
    ln -s /usr/bin/npx-24 /usr/local/bin/npx

WORKDIR /root/NetGuardia
CMD ["sleep", "infinity"]
