diff --git a/docker/Dockerfile.nakaolab.test b/docker/Dockerfile.nakaolab.test new file mode 100644 index 0000000000..59862908d9 --- /dev/null +++ b/docker/Dockerfile.nakaolab.test @@ -0,0 +1,60 @@ +FROM ran-base:latest AS ran-build +ARG BUILD_OPTION + +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 && \ + ./build_oai --ninja \ + --gNB --RU --nrUE -w SIMU -w USRP --build-lib telnetsrv \ + --build-e2 --cmake-opt -DKPM_VERSION=KPM_V3_00 --cmake-opt -DE2AP_VERSION=E2AP_V3 \ + --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 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 gdb\ + nghttp2-client || true; \ + if ! command -v h2load >/dev/null 2>&1; then \ + DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends nghttp2 || true; \ + fi; \ + wget -O /usr/local/bin/sipp https://github.com/SIPp/sipp/releases/download/v3.7.7/sipp && chmod +x /usr/local/bin/sipp; \ + rm -rf /var/lib/apt/lists/* + +# FlexRIC libraries (built by --build-e2) - only copy service model libraries (*_sm.so) +# Also rebuild xapp_nakaolab (not built by default in build_oai) +RUN mkdir -p /usr/local/etc/flexric /usr/local/lib/flexric && \ + find /oai-ran/openair2/E2AP/flexric/build -name "*_sm.so" -exec cp {} /usr/local/lib/flexric/ \; && \ + cp /oai-ran/openair2/E2AP/flexric/flexric.conf /usr/local/etc/flexric/ 2>/dev/null || true && \ + echo "/usr/local/lib/flexric" > /etc/ld.so.conf.d/flexric.conf && ldconfig && \ + cd /oai-ran/openair2/E2AP/flexric/build && \ + sed -i 's|/home/[^/]*/openairinterface5g|/oai-ran|g' CMakeCache.txt && \ + find . -name 'Makefile' -o -name '*.cmake' | xargs sed -i 's|/home/[^/]*/openairinterface5g|/oai-ran|g' 2>/dev/null || true && \ + rm -f examples/xApp/c/monitor/CMakeFiles/xapp_nakaolab.dir/xapp_nakaolab.c.o && \ + cmake --build . --target xapp_nakaolab 2>&1 | tail -5 && \ + ls -la /usr/local/lib/flexric/ + +# Install netcat for antenna control testing + paramiko for M-Plane NETCONF server +RUN apt-get update && apt-get install -y --no-install-recommends \ + netcat-openbsd python3-pip \ + && pip3 install --break-system-packages paramiko \ + && rm -rf /var/lib/apt/lists/* + +# O-RU M-Plane NETCONF server (o-ran-uplane-conf antenna mask control) +# Listens on port 831, translates NETCONF edit-config to internal antenna control +COPY mplane/mplane_server.py /opt/mplane/mplane_server.py +COPY mplane/wg4-capability.json /opt/mplane/wg4-capability.json +COPY mplane/gnb-mplane-entrypoint.sh /opt/mplane/gnb-mplane-entrypoint.sh +RUN chmod +x /opt/mplane/gnb-mplane-entrypoint.sh + +EXPOSE 831 + +ENTRYPOINT ["/bin/bash"] \ No newline at end of file