Libboost went from 1.74.0 to 1.83.0 alongside Ubuntu update. GCC version is set as default to be more practical. In Ubuntu22, apt sources were in .list files, in Ubuntu24 they are in .sources files. Add --break-system-packages for pip installation to use same logic as before, see the pip update 23.0.1 (2023-02-17). With Ubuntu24 liboai_device requires libpython3.12
89 lines
3.3 KiB
Docker
89 lines
3.3 KiB
Docker
#/*
|
|
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
|
# * contributor license agreements. See the NOTICE file distributed with
|
|
# * this work for additional information regarding copyright ownership.
|
|
# * The OpenAirInterface Software Alliance licenses this file to You under
|
|
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
|
# * except in compliance with the License.
|
|
# * You may obtain a copy of the License at
|
|
# *
|
|
# * http://www.openairinterface.org/?page_id=698
|
|
# *
|
|
# * Unless required by applicable law or agreed to in writing, software
|
|
# * distributed under the License is distributed on an "AS IS" BASIS,
|
|
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# * See the License for the specific language governing permissions and
|
|
# * limitations under the License.
|
|
# *-------------------------------------------------------------------------------
|
|
# * For more information about the OpenAirInterface (OAI) Software Alliance:
|
|
# * contact@openairinterface.org
|
|
# */
|
|
#---------------------------------------------------------------------
|
|
#
|
|
# Dockerfile for the Open-Air-Interface RAN Build for FHI 7.2
|
|
# Valid for UBUNTU 24.04
|
|
#
|
|
#---------------------------------------------------------------------
|
|
|
|
FROM ran-base:latest AS ran-base
|
|
|
|
ARG E2AP_VERSION=E2AP_V3
|
|
ARG KPM_VERSION=KPM_V3_00
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV TZ=Europe
|
|
RUN apt-get update && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
|
|
meson \
|
|
wget \
|
|
xz-utils \
|
|
pkg-config \
|
|
libnuma-dev && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN rm -Rf /oai-ran
|
|
WORKDIR /oai-ran
|
|
COPY . .
|
|
|
|
## Download and build DPDK
|
|
RUN wget http://fast.dpdk.org/rel/dpdk-20.11.9.tar.xz && \
|
|
tar -xvf dpdk-20.11.9.tar.xz && \
|
|
cd dpdk-stable-20.11.9 && \
|
|
meson build && \
|
|
ninja -C build && \
|
|
ninja install -C build
|
|
|
|
## Build Fronthaul library
|
|
RUN git clone https://gerrit.o-ran-sc.org/r/o-du/phy.git /opt/phy && \
|
|
cd /opt/phy && \
|
|
git checkout oran_f_release_v1.0 &&\
|
|
git apply /oai-ran/cmake_targets/tools/oran_fhi_integration_patches/F/oaioran_F.patch && \
|
|
cd /opt/phy/fhi_lib/lib && \
|
|
WIRELESS_SDK_TOOLCHAIN=gcc RTE_SDK=/oai-ran/dpdk-stable-20.11.9/ XRAN_DIR=/opt/phy/fhi_lib make XRAN_LIB_SO=1
|
|
|
|
FROM ran-base AS ran-build-fhi72
|
|
## Build and install OAI
|
|
#run build_oai to build the target image
|
|
RUN /bin/sh oaienv && \
|
|
cd cmake_targets && \
|
|
mkdir -p log && \
|
|
./build_oai \
|
|
--ninja --gNB \
|
|
--build-lib "telnetsrv enbscope uescope nrscope" \
|
|
-t oran_fhlib_5g --cmake-opt -Dxran_LOCATION=/opt/phy/fhi_lib/lib \
|
|
--build-e2 --cmake-opt -DKPM_VERSION=$KPM_VERSION --cmake-opt -DE2AP_VERSION=$E2AP_VERSION \
|
|
$BUILD_OPTION && \
|
|
# Mainly to see if the sanitize option was perfectly executed
|
|
ldd ran_build/build/nr-softmodem && \
|
|
ldd ran_build/build/liboran_fhlib_5g.so && \
|
|
ldd /opt/phy/fhi_lib/lib/build/libxran.so
|
|
|
|
## Build FlexRIC for SM Models
|
|
RUN mkdir -p openair2/E2AP/flexric/build && \
|
|
cd openair2/E2AP/flexric/build && \
|
|
cmake -GNinja -DCMAKE_BUILD_TYPE=Release \
|
|
-DKPM_VERSION=$KPM_VERSION \
|
|
-DE2AP_VERSION=$E2AP_VERSION .. && \
|
|
ninja && \
|
|
ninja install
|