FROM ran-base:latest AS ran-build ARG BUILD_OPTION ARG E2AP_VERSION=E2AP_V2 ARG KPM_VERSION=KPM_V2_03 RUN rm -Rf /oai-ran WORKDIR /oai-ran COPY . . # build all targets so final targets can be created afterwards RUN /bin/sh oaienv && \ cd cmake_targets && \ mkdir -p log && \ ./build_oai -c --ninja \ --gNB --RU --nrUE \ --build-lib "telnetsrv enbscope uescope nrscope" \ -w USRP -t Ethernet \ --build-e2 --cmake-opt -DKPM_VERSION=$KPM_VERSION --cmake-opt -DE2AP_VERSION=$E2AP_VERSION \ --noavx512 \ --build-tool-opt -k10 \ --cmake-opt -DCMAKE_C_FLAGS="-Werror" --cmake-opt -DCMAKE_CXX_FLAGS="-Werror" $BUILD_OPTION && \ echo "---- ldd on executables ----" && \ ldd ran_build/build/*softmodem* ran_build/build/nr-cuup ran_build/build/oairu && \ echo "---- ldd on shared libraries ----" && \ ldd ran_build/build/*.so RUN rm -rf openair2/E2AP/flexric/build && \ mkdir -p openair2/E2AP/flexric/build && \ cd openair2/E2AP/flexric/build && \ cmake -DCMAKE_BUILD_TYPE=Release \ -DKPM_VERSION=KPM_V2_03 \ -DE2AP_VERSION=E2AP_V2 \ -DCMAKE_C_COMPILER=gcc-12 \ -DCMAKE_CXX_COMPILER=g++-12 .. && \ make -j8 && make install RUN set -eux; \ apt-get update; \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ ca-certificates curl wget iproute2 iputils-ping dnsutils jq \ iperf iperf3 ffmpeg \ nghttp2-client || true; \ # Ubuntu vs Debian name differences (fallback for nghttp2 client tools) if ! command -v h2load >/dev/null 2>&1; then \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends nghttp2 || true; \ fi; \ # Try to install sipp from apt; if unavailable, build from source if apt-cache show sipp >/dev/null 2>&1; then \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends sipp; \ else \ echo "sipp not in apt, building from source..."; \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ build-essential cmake git libncurses5-dev libpcap-dev libssl-dev libpcre3-dev; \ git clone --depth=1 https://github.com/SIPp/sipp.git /tmp/sipp; \ cd /tmp/sipp; cmake -DENABLE_SSL=1 -DENABLE_PCAP=1 -DCMAKE_BUILD_TYPE=Release .; \ make -j"$(nproc)"; make install; strip /usr/local/bin/sipp || true; \ rm -rf /tmp/sipp; \ fi; \ rm -rf /var/lib/apt/lists/* # Traffic runner COPY tools/scripts/traffic_runner.sh /usr/local/bin/traffic_runner RUN chmod +x /usr/local/bin/traffic_runner ENTRYPOINT ["/bin/bash"]