112 lines
2.7 KiB
Docker
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"]
|
|
|