Files
ns3-base/Dockerfile.base
2024-08-02 09:25:19 +02:00

75 lines
1.5 KiB
Docker

FROM debian:trixie-slim AS base
LABEL Description="Docker image for NS-3 Network Simulator"
ARG VERSION=3.41
# Timezone things?
ENV TZ=Europe/Berlin
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# System packages
# Required: build-essetial through wget
# Optional for ns3 features: libsqlite3-dev through libgsl-dev
#
# Optional, but probably useful:
# tcpdump: to read pcap files
# cccache: to speed up the build
# clang-format, clang-tidy: linters
# gdb, valgrind: to debug
#
# Quality of life deps: vim, less, git
#
# Finally, clean up the cache to save some space
RUN apt-get update && apt-get install -y \
# build-essential \
g++ \
python3 \
cmake \
wget \
bzip2 \
libsqlite3-dev \
libeigen3-dev \
libgsl-dev \
tcpdump \
ccache \
# clang-format \
# clang-tidy \
# gdb \
# valgrind \
vim \
less \
# git \
&& rm -rf /var/lib/apt/lists/*
# Create a user
RUN mkdir -p /ns3
WORKDIR /tmp
# Get sources
RUN wget https://www.nsnam.org/releases/ns-allinone-$VERSION.tar.bz2
RUN tar xfj ns-allinone-$VERSION.tar.bz2
RUN rm ns-allinone-$VERSION.tar.bz2
# We don't need this anymore
RUN apt-get -y purge wget bzip2
# Move to somewhere nicer
RUN mv ./ns-allinone-$VERSION/ns-$VERSION /ns3/$VERSION && ln -s /ns3/$VERSION /ns3/latest
WORKDIR /ns3/latest
# Configure
RUN ./ns3 configure \
--enable-examples --enable-tests
# Build
RUN ./ns3 build
ENV PATH="/ns3/latest:${PATH}"
# Test
#RUN ./test.py
CMD ["bash"]