Files
openairinterface5g/docker/Dockerfile.nakaolab.rebuild
T
2026-01-08 09:17:26 +00:00

112 lines
2.7 KiB
Docker

#
# Dockerfile to rebuild nakaolab image with O-RAN antenna muting support
#
# Usage:
# cd /home/maki/openairinterface5g
# docker build -f docker/Dockerfile.nakaolab.rebuild -t nakaolab:latest .
#
FROM ubuntu:noble AS builder
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Tokyo
# Install build dependencies
RUN apt-get update && apt-get install -y \
build-essential \
cmake \
ninja-build \
ccache \
git \
libsctp-dev \
libconfig-dev \
libboost-all-dev \
libblas-dev \
liblapack-dev \
liblapacke-dev \
libyaml-cpp-dev \
libusb-1.0-0-dev \
python3 \
python3-pip \
python3-dev \
xxd \
libpcre2-dev \
bison \
flex \
libssl-dev \
libatlas-base-dev \
&& pip3 install pyyaml --break-system-packages \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# Copy source code
WORKDIR /oai-ran
COPY . .
# Build gNB and UE with rfsimulator
RUN cd cmake_targets && \
./build_oai --ninja --gNB --nrUE -w SIMU -c && \
echo "Build complete"
# Build FlexRIC if exists
RUN if [ -d "openair2/E2AP/flexric" ]; then \
cd openair2/E2AP/flexric && \
mkdir -p build && cd build && \
cmake .. && make -j$(nproc) && \
make install; \
fi
#
# Final image
#
FROM ubuntu:noble
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Tokyo
# Install runtime dependencies
RUN apt-get update && apt-get install -y \
libsctp1 \
libconfig9 \
libboost-chrono1.83.0 \
libboost-date-time1.83.0 \
libboost-filesystem1.83.0 \
libboost-regex1.83.0 \
libboost-serialization1.83.0 \
libboost-thread1.83.0 \
libboost-system1.83.0 \
libboost-program-options1.83.0 \
libblas3 \
liblapack3 \
libyaml-cpp0.8 \
libusb-1.0-0 \
net-tools \
iputils-ping \
iproute2 \
iperf \
iperf3 \
netcat-openbsd \
procps \
gdb \
python3 \
python3-six \
python3-requests \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# Copy built binaries and libraries
WORKDIR /oai-ran
COPY --from=builder /oai-ran/cmake_targets/ran_build /oai-ran/cmake_targets/ran_build
COPY --from=builder /oai-ran/targets /oai-ran/targets
COPY --from=builder /oai-ran/ci-scripts/conf_files /oai-ran/ci-scripts/conf_files
# Copy FlexRIC if built
COPY --from=builder /usr/local/lib/flexric /usr/local/lib/flexric
COPY --from=builder /usr/local/etc/flexric /usr/local/etc/flexric
RUN echo "/usr/local/lib/flexric" >> /etc/ld.so.conf.d/flexric.conf && ldconfig || true
# Copy FlexRIC binaries
RUN mkdir -p /oai-ran/openair2/E2AP/flexric/build/examples
COPY --from=builder /oai-ran/openair2/E2AP/flexric/build/examples /oai-ran/openair2/E2AP/flexric/build/examples
ENTRYPOINT ["/bin/bash"]