Add 7.2 container dockerfiles and update existing images
- Add dedicated target docker files for 7.2, both RHEL and Ubuntu - in existing dockerfiles, update to also build E2 SMs - for UBI images, only the entitlements are necessary, the rest can be omitted (it is superfluous) Signed-off-by: arora <sagar.arora@eurecom.fr> Co-authored-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
This commit is contained in:
committed by
Robert Schmidt
co-authored by
Raphael Defosseux
parent
e1885f65d8
commit
ccddddc64e
@@ -21,12 +21,13 @@
|
|||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Dockerfile for the Open-Air-Interface BUILD service
|
# Dockerfile for the Open-Air-Interface BUILD service
|
||||||
# Valid for RHEL9
|
# Valid for UBI9
|
||||||
#
|
#
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
FROM registry.access.redhat.com/ubi9/ubi:latest AS ran-base
|
FROM registry.access.redhat.com/ubi9/ubi:latest AS ran-base
|
||||||
|
LABEL MAINTAINER OpenAirInterface <contact@openairinterface.org>
|
||||||
ARG NEEDED_GIT_PROXY
|
ARG NEEDED_GIT_PROXY
|
||||||
ENV TZ=Europe/Paris
|
ENV TZ=Europe/Paris
|
||||||
ENV BUILD_UHD_FROM_SOURCE=True
|
ENV BUILD_UHD_FROM_SOURCE=True
|
||||||
@@ -35,10 +36,6 @@ ENV UHD_VERSION=4.4.0.0
|
|||||||
# Copy the entitlements
|
# Copy the entitlements
|
||||||
COPY ./etc-pki-entitlement /etc/pki/entitlement
|
COPY ./etc-pki-entitlement /etc/pki/entitlement
|
||||||
|
|
||||||
# Copy the subscription manager configurations
|
|
||||||
COPY ./rhsm-conf /etc/rhsm
|
|
||||||
COPY ./rhsm-ca /etc/rhsm/ca
|
|
||||||
|
|
||||||
ENV SMDEV_CONTAINER_OFF=1
|
ENV SMDEV_CONTAINER_OFF=1
|
||||||
#install developers pkg/repo
|
#install developers pkg/repo
|
||||||
RUN rm -f /etc/rhsm-host && \
|
RUN rm -f /etc/rhsm-host && \
|
||||||
@@ -47,11 +44,21 @@ RUN rm -f /etc/rhsm-host && \
|
|||||||
cat /etc/os-release && \
|
cat /etc/os-release && \
|
||||||
dnf install -y \
|
dnf install -y \
|
||||||
#gcc needed for build_oai
|
#gcc needed for build_oai
|
||||||
gcc gcc-c++ \
|
|
||||||
diffutils \
|
diffutils \
|
||||||
file \
|
file \
|
||||||
psmisc \
|
psmisc \
|
||||||
git \
|
git \
|
||||||
|
meson \
|
||||||
|
wget \
|
||||||
|
xz \
|
||||||
|
pkg-config \
|
||||||
|
pcre2-devel \
|
||||||
|
m4 \
|
||||||
|
python3-devel \
|
||||||
|
numactl-libs \
|
||||||
|
numactl-devel \
|
||||||
|
gcc-toolset-12-gcc \
|
||||||
|
gcc-toolset-12-gcc-c++ \
|
||||||
# python3-pip and pyyaml are used for conf template generation
|
# python3-pip and pyyaml are used for conf template generation
|
||||||
python3-pip && \
|
python3-pip && \
|
||||||
pip3 install --ignore-installed pyyaml && \
|
pip3 install --ignore-installed pyyaml && \
|
||||||
@@ -83,5 +90,6 @@ COPY oaienv .
|
|||||||
RUN /bin/sh oaienv && \
|
RUN /bin/sh oaienv && \
|
||||||
cd cmake_targets && \
|
cd cmake_targets && \
|
||||||
mkdir -p log && \
|
mkdir -p log && \
|
||||||
./build_oai -I --install-optional-packages -w USRP && \
|
scl enable gcc-toolset-12 "\
|
||||||
|
./build_oai -I --install-optional-packages -w USRP" && \
|
||||||
rm /etc/pki/entitlement/*pem
|
rm /etc/pki/entitlement/*pem
|
||||||
|
|||||||
@@ -45,6 +45,11 @@ RUN apt-get update && \
|
|||||||
gcc-12 \
|
gcc-12 \
|
||||||
g++-12 \
|
g++-12 \
|
||||||
xxd \
|
xxd \
|
||||||
|
libpcre2-dev \
|
||||||
|
python3-dev \
|
||||||
|
bison \
|
||||||
|
flex \
|
||||||
|
m4 \
|
||||||
# python3-pip for conf template generation
|
# python3-pip for conf template generation
|
||||||
python3-pip && \
|
python3-pip && \
|
||||||
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100 --slave /usr/bin/g++ g++ /usr/bin/g++-12 && \
|
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100 --slave /usr/bin/g++ g++ /usr/bin/g++-12 && \
|
||||||
|
|||||||
@@ -0,0 +1,79 @@
|
|||||||
|
#/*
|
||||||
|
# * 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 UBI9
|
||||||
|
#
|
||||||
|
#---------------------------------------------------------------------
|
||||||
|
|
||||||
|
FROM ran-base:latest as ran-base
|
||||||
|
ENV TZ=Europe
|
||||||
|
|
||||||
|
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_e_maintenance_release_v1.0 &&\
|
||||||
|
git apply /oai-ran/cmake_targets/tools/oran_fhi_integration_patches/E/oaioran_E.patch && \
|
||||||
|
cd /opt/phy/fhi_lib/lib && \
|
||||||
|
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
|
||||||
|
ARG E2AP_VERSION=E2AP_V3
|
||||||
|
ARG KPM_VERSION=KPM_V3_00
|
||||||
|
|
||||||
|
## Build and install OAI
|
||||||
|
RUN /bin/sh oaienv && \
|
||||||
|
cd cmake_targets && \
|
||||||
|
mkdir -p log && \
|
||||||
|
scl enable gcc-toolset-12 "\
|
||||||
|
./build_oai \
|
||||||
|
--gNB \
|
||||||
|
--build-lib 'telnetsrv enbscope uescope nrscope' \
|
||||||
|
-t oran_fhlib_5g --cmake-opt -Dxran_LOCATION=/opt/phy/fhi_lib/lib \
|
||||||
|
--build-e2 --cmake-opt -DXAPP_MULTILANGUAGE=OFF --cmake-opt -DKPM_VERSION=$KPM_VERSION --cmake-opt -DE2AP_VERSION=$E2AP_VERSION" &&\
|
||||||
|
# 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 && \
|
||||||
|
scl enable gcc-toolset-12 "\
|
||||||
|
cmake -GNinja -DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DXAPP_MULTILANGUAGE=OFF \
|
||||||
|
-DKPM_VERSION=$KPM_VERSION \
|
||||||
|
-DE2AP_VERSION=$E2AP_VERSION .. &&\
|
||||||
|
ninja && \
|
||||||
|
ninja install"
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
#/*
|
||||||
|
# * 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 22.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_e_maintenance_release_v1.0 &&\
|
||||||
|
git apply /oai-ran/cmake_targets/tools/oran_fhi_integration_patches/E/oaioran_E.patch && \
|
||||||
|
cd /opt/phy/fhi_lib/lib && \
|
||||||
|
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 \
|
||||||
|
--gNB \
|
||||||
|
--build-lib "telnetsrv enbscope uescope nrscope" \
|
||||||
|
-t oran_fhlib_5g --cmake-opt -Dxran_LOCATION=/opt/phy/fhi_lib/lib \
|
||||||
|
--build-e2 --cmake-opt -DXAPP_MULTILANGUAGE=OFF --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 \
|
||||||
|
-DXAPP_MULTILANGUAGE=OFF \
|
||||||
|
-DKPM_VERSION=$KPM_VERSION \
|
||||||
|
-DE2AP_VERSION=$E2AP_VERSION \
|
||||||
|
-DCMAKE_C_COMPILER=gcc-12 \
|
||||||
|
-DCMAKE_CXX_COMPILER=g++-12 .. && \
|
||||||
|
ninja && \
|
||||||
|
ninja install
|
||||||
@@ -0,0 +1,125 @@
|
|||||||
|
#/*
|
||||||
|
# * 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 7.2 Fronthaul
|
||||||
|
# Valid for UBI9
|
||||||
|
#
|
||||||
|
#---------------------------------------------------------------------
|
||||||
|
|
||||||
|
FROM ran-base:latest as gnb-base
|
||||||
|
|
||||||
|
FROM ran-build-fhi72:latest as gnb-build
|
||||||
|
|
||||||
|
#start from scratch for target executable
|
||||||
|
FROM registry.access.redhat.com/ubi9/ubi:latest as oai-gnb-fhi72
|
||||||
|
ENV TZ=Europe/Paris
|
||||||
|
|
||||||
|
# Copy the entitlements
|
||||||
|
COPY ./etc-pki-entitlement /etc/pki/entitlement
|
||||||
|
|
||||||
|
RUN rm -f /etc/rhsm-host && \
|
||||||
|
subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms && \
|
||||||
|
dnf update -y && \
|
||||||
|
cat /etc/os-release && \
|
||||||
|
dnf install -y \
|
||||||
|
procps-ng \
|
||||||
|
libXpm \
|
||||||
|
libX11 \
|
||||||
|
lksctp-tools \
|
||||||
|
xz \
|
||||||
|
numactl-libs \
|
||||||
|
numactl-devel \
|
||||||
|
pkg-config \
|
||||||
|
pciutils \
|
||||||
|
tzdata \
|
||||||
|
gdb \
|
||||||
|
python3 \
|
||||||
|
python3-pip \
|
||||||
|
net-tools \
|
||||||
|
iputils && \
|
||||||
|
pip3 install six && \
|
||||||
|
pip3 install requests && \
|
||||||
|
echo "/usr/local/lib" > /etc/ld.so.conf.d/local-lib.conf && \
|
||||||
|
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf && \
|
||||||
|
subscription-manager repos --disable codeready-builder-for-rhel-9-x86_64-rpms && \
|
||||||
|
rm -rf /etc/pki/entitlement
|
||||||
|
|
||||||
|
WORKDIR /opt/oai-gnb/bin
|
||||||
|
COPY --from=gnb-build \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/nr-softmodem ./
|
||||||
|
COPY ./docker/scripts/gnb_entrypoint.sh ./entrypoint.sh
|
||||||
|
|
||||||
|
COPY --from=gnb-build \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/librfsimulator.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/liboran_fhlib_5g.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/liboai_transpro.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/libcoding.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/libparams_libconfig.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/libldpc*.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/libtelnetsrv.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/libtelnetsrv_ci.so \
|
||||||
|
/usr/local/lib/
|
||||||
|
|
||||||
|
## Libxran library
|
||||||
|
COPY --from=gnb-build \
|
||||||
|
/opt/phy/fhi_lib/lib/build/libxran.so \
|
||||||
|
/opt/phy/fhi_lib/lib/build/
|
||||||
|
|
||||||
|
## Copy all DPDK libraries as liboran_fhlib_5g.so require most of them
|
||||||
|
COPY --from=gnb-build /usr/local/lib64/ /usr/local/lib64/
|
||||||
|
|
||||||
|
## Copy E2 SM models
|
||||||
|
COPY --from=gnb-build /usr/local/lib64/flexric /usr/local/lib64/flexric
|
||||||
|
|
||||||
|
# Copying file for configuration module
|
||||||
|
COPY --from=gnb-base \
|
||||||
|
/lib64/libconfig.so.11 \
|
||||||
|
/lib64/libforms.so.2 \
|
||||||
|
/lib64/libblas.so.3 \
|
||||||
|
/lib64/libcblas.so.3 \
|
||||||
|
/lib64/liblapack.so.3 \
|
||||||
|
/lib64/liblapacke.so.3 \
|
||||||
|
/lib64/libicudata.so.67 \
|
||||||
|
/lib64/libicui18n.so.67 \
|
||||||
|
/lib64/libicuuc.so.67 \
|
||||||
|
/lib64/
|
||||||
|
|
||||||
|
RUN ldconfig && \
|
||||||
|
echo "---- ldd on executable nr-softmodem ----" && \
|
||||||
|
ldd /opt/oai-gnb/bin/nr-softmodem && \
|
||||||
|
echo "---- ldd on shared libraries ----" && \
|
||||||
|
ldd /usr/local/lib/librfsimulator.so \
|
||||||
|
/usr/local/lib/liboran_fhlib_5g.so \
|
||||||
|
/usr/local/lib/liboai_transpro.so \
|
||||||
|
/usr/local/lib/libcoding.so \
|
||||||
|
/usr/local/lib/libparams_libconfig.so \
|
||||||
|
/usr/local/lib/libdfts.so \
|
||||||
|
/usr/local/lib/libldpc*.so \
|
||||||
|
/usr/local/lib/libtelnetsrv.so \
|
||||||
|
/usr/local/lib/libtelnetsrv_ci.so \
|
||||||
|
/opt/phy/fhi_lib/lib/build/libxran.so
|
||||||
|
|
||||||
|
WORKDIR /opt/oai-gnb
|
||||||
|
COPY --from=gnb-base /tini /tini
|
||||||
|
ENTRYPOINT ["/tini", "-v", "--", "/opt/oai-gnb/bin/entrypoint.sh"]
|
||||||
|
CMD ["/opt/oai-gnb/bin/nr-softmodem", "-O", "/opt/oai-gnb/etc/gnb.conf"]
|
||||||
@@ -0,0 +1,113 @@
|
|||||||
|
#/*
|
||||||
|
# * 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 7.2 Fronthaul
|
||||||
|
# Valid for Ubuntu22.04
|
||||||
|
#
|
||||||
|
#---------------------------------------------------------------------
|
||||||
|
|
||||||
|
FROM ran-base:latest as gnb-base
|
||||||
|
|
||||||
|
FROM ran-build-fhi72:latest as gnb-build
|
||||||
|
|
||||||
|
|
||||||
|
#start from scratch for target executable
|
||||||
|
FROM ubuntu:jammy as oai-gnb
|
||||||
|
ARG BUILD_OPTION
|
||||||
|
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 \
|
||||||
|
software-properties-common \
|
||||||
|
procps \
|
||||||
|
pkg-config \
|
||||||
|
libsctp1 \
|
||||||
|
tzdata \
|
||||||
|
libblas3 \
|
||||||
|
libconfig9 \
|
||||||
|
openssl \
|
||||||
|
net-tools \
|
||||||
|
iperf \
|
||||||
|
iproute2 \
|
||||||
|
iputils-ping \
|
||||||
|
gdb \
|
||||||
|
pciutils \
|
||||||
|
libpcap-dev \
|
||||||
|
xz-utils \
|
||||||
|
libnuma-dev \
|
||||||
|
python3 \
|
||||||
|
python3-six \
|
||||||
|
python3-requests &&\
|
||||||
|
# if the --sanitize option was used to build, additional packages are required
|
||||||
|
/bin/bash -c 'if [[ "$BUILD_OPTION" = "--sanitize" ]]; then DEBIAN_FRONTEND=noninteractive apt-get install --yes \
|
||||||
|
libasan5 \
|
||||||
|
libubsan1 \
|
||||||
|
liblapacke; fi' && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
WORKDIR /opt/oai-gnb/bin
|
||||||
|
COPY --from=gnb-build \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/nr-softmodem ./
|
||||||
|
COPY ./docker/scripts/gnb_entrypoint.sh ./entrypoint.sh
|
||||||
|
|
||||||
|
COPY --from=gnb-build \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/librfsimulator.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/liboai_transpro.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/libcoding.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/libparams_libconfig.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/libldpc*.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/libtelnetsrv.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/libtelnetsrv_ci.so \
|
||||||
|
/usr/local/lib/
|
||||||
|
|
||||||
|
## Libxran library
|
||||||
|
COPY --from=gnb-build \
|
||||||
|
/opt/phy/fhi_lib/lib/build/libxran.so \
|
||||||
|
/opt/phy/fhi_lib/lib/build/
|
||||||
|
|
||||||
|
## Copy all DPDK libraries as liboran_fhlib_5g.so require most of them
|
||||||
|
COPY --from=gnb-build /usr/local/lib/x86_64-linux-gnu /usr/local/lib/x86_64-linux-gnu/
|
||||||
|
|
||||||
|
## Copy E2 SM models
|
||||||
|
COPY --from=gnb-build /usr/local/lib/flexric /usr/local/lib/flexric
|
||||||
|
|
||||||
|
RUN ldconfig && \
|
||||||
|
echo "---- ldd on nr-softmodem ----" && \
|
||||||
|
ldd /opt/oai-gnb/bin/nr-softmodem && \
|
||||||
|
echo "---- ldd on shared libraries ----" && \
|
||||||
|
ldd /usr/local/lib/librfsimulator.so \
|
||||||
|
/usr/local/lib/liboai_transpro.so \
|
||||||
|
/usr/local/lib/libcoding.so \
|
||||||
|
/usr/local/lib/libparams_libconfig.so \
|
||||||
|
/usr/local/lib/libdfts.so \
|
||||||
|
/usr/local/lib/libldpc*.so \
|
||||||
|
/usr/local/lib/libtelnetsrv.so \
|
||||||
|
/usr/local/lib/libtelnetsrv_ci.so \
|
||||||
|
/opt/phy/fhi_lib/lib/build/libxran.so
|
||||||
|
|
||||||
|
WORKDIR /opt/oai-gnb
|
||||||
|
COPY --from=gnb-base /tini /tini
|
||||||
|
ENTRYPOINT ["/tini", "-v", "--", "/opt/oai-gnb/bin/entrypoint.sh"]
|
||||||
|
CMD ["/opt/oai-gnb/bin/nr-softmodem", "-O", "/opt/oai-gnb/etc/gnb.conf"]
|
||||||
Reference in New Issue
Block a user