Merge remote-tracking branch 'origin/ubuntu24-docker-images' into integration_2025_w33 (!3492)

Upgrade CI images to Ubuntu 24

The MR upgrade the docker files from Jammy(22.04) to Noble(24.04).
This commit is contained in:
Robert Schmidt
2025-08-14 14:30:21 +02:00
33 changed files with 178 additions and 249 deletions
+3 -3
View File
@@ -298,7 +298,7 @@ class Containerize():
self.host = result.group(0)
if self.host == 'Ubuntu':
self.cli = 'docker'
self.dockerfileprefix = '.ubuntu22'
self.dockerfileprefix = '.ubuntu'
self.cliBuildOptions = ''
elif self.host == 'Red Hat':
self.cli = 'sudo podman'
@@ -337,7 +337,7 @@ class Containerize():
imageNames.append(('oai-gnb', 'gNB.fhi72', 'oai-gnb-fhi72', ''))
result = re.search('build_cross_arm64', self.imageKind)
if result is not None:
self.dockerfileprefix = '.ubuntu22.cross-arm64'
self.dockerfileprefix = '.ubuntu.cross-arm64'
result = re.search('native_arm', self.imageKind)
if result is not None:
imageNames.append(('oai-gnb', 'gNB', 'oai-gnb', ''))
@@ -625,7 +625,7 @@ class Containerize():
return False
# build ran-unittests image
dockerfile = "ci-scripts/docker/Dockerfile.unittest.ubuntu22"
dockerfile = "ci-scripts/docker/Dockerfile.unittest.ubuntu"
logfile = f'{lSourcePath}/cmake_targets/log/unittest-build.log'
ret = cmd.run(f'docker build --progress=plain --tag ran-unittests:{baseTag} --file {dockerfile} . &> {logfile}')
archiveArtifact(cmd, ctx, logfile)
+1 -1
View File
@@ -212,7 +212,7 @@ class StaticCodeAnalysis():
logDir = f'{lSourcePath}/cmake_targets/log/'
cmd.run(f'mkdir -p {logDir}')
cmd.run('docker image rm oai-formatting-check:latest')
cmd.run(f'docker build --target oai-formatting-check --tag oai-formatting-check:latest {check_options} --file {lSourcePath}/ci-scripts/docker/Dockerfile.formatting.bionic {lSourcePath} > {logDir}/oai-formatting-check.txt 2>&1')
cmd.run(f'docker build --target oai-formatting-check --tag oai-formatting-check:latest {check_options} --file {lSourcePath}/ci-scripts/docker/Dockerfile.formatting.ubuntu {lSourcePath} > {logDir}/oai-formatting-check.txt 2>&1')
cmd.run('docker image rm oai-formatting-check:latest')
cmd.run('docker image prune --force')
+2 -2
View File
@@ -30,8 +30,8 @@ FROM ubuntu:xenial AS oai-cppcheck
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
apt-get upgrade --yes && \
apt-get install --yes \
build-essential \
vim \
cppcheck
@@ -21,11 +21,11 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu 22.04
# Valid for Ubuntu 24.04
#
#---------------------------------------------------------------------
FROM ubuntu:bionic AS oai-formatting-check
FROM ubuntu:noble AS oai-formatting-check
ARG MERGE_REQUEST
ARG SRC_BRANCH
@@ -33,8 +33,8 @@ ARG TARGET_BRANCH
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
apt-get upgrade --yes && \
apt-get install --yes \
gawk \
git
@@ -21,7 +21,7 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu 22.04
# Valid for Ubuntu 24.04
#
#---------------------------------------------------------------------
@@ -3,7 +3,7 @@ services:
image: ran-base
build:
context: ../../../
dockerfile: docker/Dockerfile.base.ubuntu22
dockerfile: docker/Dockerfile.base.ubuntu
tags:
- ran-base
@@ -11,7 +11,7 @@ services:
image: ran-build
build:
context: ../../../
dockerfile: docker/Dockerfile.build.ubuntu22
dockerfile: docker/Dockerfile.build.ubuntu
tags:
- ran-build
depends_on:
@@ -22,7 +22,7 @@ services:
image: gnb-local
build:
context: ../../../
dockerfile: docker/Dockerfile.gNB.ubuntu22
dockerfile: docker/Dockerfile.gNB.ubuntu
tags:
- gnb-local
depends_on:
@@ -35,7 +35,7 @@ services:
image: ue-local
build:
context: ../../../
dockerfile: docker/Dockerfile.nrUE.ubuntu22
dockerfile: docker/Dockerfile.nrUE.ubuntu
tags:
- ue-local
depends_on:
+2 -2
View File
@@ -1,8 +1,8 @@
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_C_COMPILER /usr/bin/aarch64-linux-gnu-gcc-11)
set(CMAKE_CXX_COMPILER /usr/bin/aarch64-linux-gnu-g++-11)
set(CMAKE_C_COMPILER /usr/bin/aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER /usr/bin/aarch64-linux-gnu-g++)
set(ENV{PKG_CONFIG_LIBDIR} "/usr/lib/aarch64-linux-gnu/pkgconfig")
+1 -1
View File
@@ -323,7 +323,7 @@ check_install_usrp_uhd_driver(){
$SUDO apt-get remove libuhd3.14.1 -y || true
$SUDO apt-get remove libuhd3.15.0 -y || true
local distribution=$(get_distribution_release)
if [[ "$distribution" == "ubuntu20.04" || "$distribution" == "ubuntu22.04" ]]; then
if [[ "$distribution" == "ubuntu20.04" || "$distribution" == "ubuntu22.04" || "$distribution" == "ubuntu24.04" ]]; then
$SUDO apt-get remove libuhd4.?.? -y || true
fi
v=$(lsb_release -cs)
+2 -2
View File
@@ -213,8 +213,8 @@ With the nvIPC sources in the project directory, the docker image can be built.
In order to build the target image (`oai-gnb-aerial`), first you should build a common shared image (`ran-base`)
```bash
~$ cd ~/openairinterface5g/
~/openairinterface5g$ docker build . -f docker/Dockerfile.base.ubuntu22 --tag ran-base:latest
~/openairinterface5g$ docker build . -f docker/Dockerfile.gNB.aerial.ubuntu22 --tag oai-gnb-aerial:latest
~/openairinterface5g$ docker build . -f docker/Dockerfile.base.ubuntu --tag ran-base:latest
~/openairinterface5g$ docker build . -f docker/Dockerfile.gNB.aerial.ubuntu --tag oai-gnb-aerial:latest
```
+1 -1
View File
@@ -138,4 +138,4 @@ The other SDRs (AW2S, LimeSDR, ...) have no READMEs.
- [formatting](../tools/formatting/README.md) is a clang-format error detection tool
- [iwyu](../tools/iwyu/README.md) is a tool to detect `#include` errors
- [docker-dev-env](../tools/docker-dev-env/README.md) is a ubuntu22 docker development environment
- [docker-dev-env](../tools/docker-dev-env/README.md) is a ubuntu24 docker development environment
+21 -21
View File
@@ -88,8 +88,8 @@ information on how the images are built.
- [RAN-ARM-Cross-Compile-Builder](https://jenkins-oai.eurecom.fr/job/RAN-ARM-Cross-Compile-Builder/)
~BUILD-ONLY ~4G-LTE ~5G-NR ~nrUE
- orion: Cross-compilation from Intel to ARM
- base image from `Dockerfile.base.ubuntu22.cross-arm64`
- build image from `Dockerfile.build.ubuntu22.cross-arm64` (no target images)
- base image from `Dockerfile.base.ubuntu.cross-arm64`
- build image from `Dockerfile.build.ubuntu.cross-arm64` (no target images)
- [RAN-cppcheck](https://jenkins-oai.eurecom.fr/job/RAN-cppcheck/)
~BUILD-ONLY ~4G-LTE ~5G-NR ~nrUE
- bellatrix
@@ -112,29 +112,29 @@ information on how the images are built.
- build image from `Dockerfile.clang.rhel9` (compilation only, artifacts not used currently)
- [RAN-Ubuntu18-Image-Builder](https://jenkins-oai.eurecom.fr/job/RAN-Ubuntu18-Image-Builder/)
~BUILD-ONLY ~4G-LTE ~5G-NR ~nrUE
- run formatting check from `ci-scripts/docker/Dockerfile.formatting.bionic`
- run formatting check from `ci-scripts/docker/Dockerfile.formatting.ubuntu`
- obelix: Ubuntu 22 image build using docker (Note: builds U22 images while pipeline is named U18!)
- base image from `Dockerfile.base.ubuntu22`
- build image from `Dockerfile.build.ubuntu22`, followed by
- target image from `Dockerfile.eNB.ubuntu22`
- target image from `Dockerfile.gNB.ubuntu22`
- target image from `Dockerfile.nr-cuup.ubuntu22`
- target image from `Dockerfile.nrUE.ubuntu22`
- target image from `Dockerfile.lteUE.ubuntu22`
- target image from `Dockerfile.lteRU.ubuntu22`
- target image from `Dockerfile.gNB.aerial.ubuntu22`
- build image from `Dockerfile.build.fhi72.ubuntu22`, followed by
- target image from `Dockerfile.gNB.fhi72.ubuntu22`
- build unit tests from `ci-scripts/docker/Dockerfile.unittest.ubuntu22`, and run them
- base image from `Dockerfile.base.ubuntu`
- build image from `Dockerfile.build.ubuntu`, followed by
- target image from `Dockerfile.eNB.ubuntu`
- target image from `Dockerfile.gNB.ubuntu`
- target image from `Dockerfile.nr-cuup.ubuntu`
- target image from `Dockerfile.nrUE.ubuntu`
- target image from `Dockerfile.lteUE.ubuntu`
- target image from `Dockerfile.lteRU.ubuntu`
- target image from `Dockerfile.gNB.aerial.ubuntu`
- build image from `Dockerfile.build.fhi72.ubuntu`, followed by
- target image from `Dockerfile.gNB.fhi72.ubuntu`
- build unit tests from `ci-scripts/docker/Dockerfile.unittest.ubuntu`, and run them
- [RAN-Ubuntu-ARM-Image-Builder](https://jenkins-oai.eurecom.fr/job/RAN-Ubuntu-ARM-Image-Builder/)
~BUILD-ONLY ~4G-LTE ~5G-NR
- gracehopper3-oai: ARM Ubuntu 22 image build using docker
- base image from `Dockerfile.base.ubuntu22`
- build image from `Dockerfile.build.ubuntu22`, followed by
- target image from `Dockerfile.gNB.ubuntu22`
- target image from `Dockerfile.nr-cuup.ubuntu22`
- target image from `Dockerfile.nrUE.ubuntu22`
- target image from `Dockerfile.gNB.aerial.ubuntu22`
- base image from `Dockerfile.base.ubuntu`
- build image from `Dockerfile.build.ubuntu`, followed by
- target image from `Dockerfile.gNB.ubuntu`
- target image from `Dockerfile.nr-cuup.ubuntu`
- target image from `Dockerfile.nrUE.ubuntu`
- target image from `Dockerfile.gNB.aerial.ubuntu`
#### Image Test pipelines
+4 -4
View File
@@ -36,8 +36,8 @@ sudo cp /etc/apt/sources.list "/etc/apt/sources.list.`date`.backup"
sudo sed -i -E "s/(deb)\ (http:.+)/\1\ [arch=amd64]\ \2/" /etc/apt/sources.list
sudo apt update
sudo apt install -y gcc-11-aarch64-linux-gnu \
g++-11-aarch64-linux-gnu
sudo apt install -y gcc-aarch64-linux-gnu \
g++-aarch64-linux-gnu
sudo apt-get install -y \
libblas-dev:arm64 \
@@ -97,5 +97,5 @@ ninja params_libconfig coding rfsimulator
# Further information
You can do the above steps using docker, see dockerfiles
`docker/Dockerfile.base.ubuntu22.cross-arm64` and
`docker/Dockerfile.build.ubuntu22.cross-arm64` for more information.
`docker/Dockerfile.base.ubuntu.cross-arm64` and
`docker/Dockerfile.build.ubuntu.cross-arm64` for more information.
@@ -21,12 +21,12 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu 22.04
# Valid for Ubuntu 24.04
#
#---------------------------------------------------------------------
FROM ubuntu:jammy AS ran-base
FROM ubuntu:noble AS ran-base
ARG NEEDED_GIT_PROXY
ARG TARGETARCH
ENV DEBIAN_FRONTEND=noninteractive
@@ -36,16 +36,13 @@ ENV UHD_VERSION=4.4.0.0
#install developers pkg/repo
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
apt-get upgrade --yes && \
apt-get install --yes \
#gcc needed for build_oai
build-essential \
ccache \
psmisc \
git \
#use gcc-12 to avoid problems of default gcc-11 in FlexRIC
gcc-12 \
g++-12 \
xxd \
libpcre2-dev \
python3-dev \
@@ -55,8 +52,8 @@ RUN apt-get update && \
# python3-pip for conf template generation
python3-pip \
wget && \
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100 --slave /usr/bin/g++ g++ /usr/bin/g++-12 && \
pip3 install --ignore-installed pyyaml
# --break-system-packages allows externally managed environment in pip
pip3 install --ignore-installed pyyaml --break-system-packages
# Add "Tini - A tiny but valid init for containers", https://github.com/krallin/tini
# it will be copied into target containers, to print exit numbers and handle signals properly
@@ -21,12 +21,12 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu 22.04 to cross-compile for ARM64
# Valid for Ubuntu 24.04 to cross-compile for ARM64
#
#---------------------------------------------------------------------
# Very important, the jammy image shall not be using mirrors. A lot of them do NOT support ARM64.
FROM ubuntu:jammy AS ran-base
# Very important, the noble image shall not be using mirrors. A lot of them do NOT support ARM64.
FROM ubuntu:noble AS ran-base
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris
# Specifying a working version of SIMDE for ARM:
@@ -34,22 +34,23 @@ ENV SIMDE_VERSION=389f360a66d4a3bec62b7d71ad8be877487809ba
#install developers pkg/repo
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
apt-get upgrade --yes && \
#enabling arm64 architecture
dpkg --add-architecture arm64 && \
echo "deb [arch=arm64] http://ports.ubuntu.com/ jammy main restricted\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ jammy-updates main restricted\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ jammy universe\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ jammy-updates universe\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ jammy multiverse\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ jammy-updates multiverse\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ jammy-backports main restricted universe multiverse" \
echo "deb [arch=arm64] http://ports.ubuntu.com/ noble main restricted\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ noble-updates main restricted\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ noble universe\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ noble-updates universe\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ noble multiverse\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ noble-updates multiverse\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ noble-backports main restricted universe multiverse" \
| tee /etc/apt/sources.list.d/arm-cross-compile-sources.list && \
cp /etc/apt/sources.list "/etc/apt/sources.list.`date`.backup" && \
sed -i -E "s/(deb)\ (http:.+)/\1\ [arch=amd64]\ \2/" /etc/apt/sources.list && \
sed -i '/^Components:/a Architectures: amd64' /etc/apt/sources.list.d/ubuntu.sources && \
apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
apt-get upgrade --yes && \
apt-get install --yes \
build-essential \
psmisc \
git \
@@ -69,8 +70,8 @@ RUN apt-get update && \
libyaml-cpp-dev:arm64 \
# cross build libs and compilers
libc6-dev-i386 \
gcc-11-aarch64-linux-gnu \
g++-11-aarch64-linux-gnu && \
gcc-aarch64-linux-gnu \
g++-aarch64-linux-gnu && \
apt-get clean
# Add "Tini - A tiny but valid init for containers", https://github.com/krallin/tini
@@ -21,7 +21,7 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface RAN Build for FHI 7.2
# Valid for UBUNTU 22.04
# Valid for UBUNTU 24.04
#
#---------------------------------------------------------------------
@@ -32,8 +32,8 @@ 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 \
apt-get upgrade --yes && \
apt-get install --yes \
meson \
wget \
xz-utils \
@@ -94,8 +94,6 @@ RUN mkdir -p 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 .. && \
-DE2AP_VERSION=$E2AP_VERSION .. && \
ninja && \
ninja install
@@ -21,7 +21,7 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface RAN Build for FHI 7.2
# Valid for UBUNTU 22.04
# Valid for UBUNTU 24.04
#
#---------------------------------------------------------------------
@@ -32,8 +32,8 @@ 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 \
apt-get upgrade --yes && \
apt-get install --yes \
meson \
wget \
xz-utils \
@@ -83,8 +83,6 @@ 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 \
-DCMAKE_C_COMPILER=gcc-12 \
-DCMAKE_CXX_COMPILER=g++-12 .. && \
-DE2AP_VERSION=$E2AP_VERSION .. && \
ninja && \
ninja install
@@ -21,7 +21,7 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu 22.04
# Valid for Ubuntu 24.04
#
#---------------------------------------------------------------------
@@ -66,8 +66,6 @@ RUN \
cd openair2/E2AP/flexric/build && \
cmake -GNinja -DCMAKE_BUILD_TYPE=Release \
-DKPM_VERSION=$KPM_VERSION \
-DE2AP_VERSION=$E2AP_VERSION \
-DCMAKE_C_COMPILER=gcc-12 \
-DCMAKE_CXX_COMPILER=g++-12 .. && \
-DE2AP_VERSION=$E2AP_VERSION .. && \
ninja && \
ninja install
@@ -21,7 +21,7 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu 22.04 to cross-compile for ARM64
# Valid for Ubuntu 24.04 to cross-compile for ARM64
#
#---------------------------------------------------------------------
@@ -21,7 +21,7 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu 22.04
# Valid for Ubuntu 24.04
#
#---------------------------------------------------------------------
@@ -31,25 +31,25 @@ FROM ran-build:latest AS enb-build
#start from scratch for target executable
FROM ubuntu:jammy AS oai-enb
FROM ubuntu:noble AS oai-enb
ARG BUILD_OPTION
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
apt-get upgrade --yes && \
apt-get install --yes \
software-properties-common \
procps \
libsctp1 \
libboost-chrono1.74.0 \
libboost-date-time1.74.0 \
libboost-filesystem1.74.0 \
libboost-regex1.74.0 \
libboost-serialization1.74.0 \
libboost-thread1.74.0 \
libboost-system1.74.0 \
libboost-program-options1.74.0 \
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 \
tzdata \
libblas3 \
libconfig9 \
@@ -73,18 +73,12 @@ RUN apt-get update && \
apt-get remove -y wget && \
# 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 \ # see below
libasan8 \
libubsan1 \
liblapacke; fi' && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/*
# we select another compile (gcc-12) for compilation, requiring another libasan
# library version. Installing it above would install the wrong version. Hence,
# copy the right version from ran-build. When upgrading to Ubuntu24, install
# the correct one above!
COPY --from=enb-build /usr/lib/x86_64-linux-gnu/libasan.so.8.0.0 /usr/lib/x86_64-linux-gnu/
WORKDIR /opt/oai-enb/bin
COPY --from=enb-build \
/oai-ran/cmake_targets/ran_build/build/lte-softmodem ./
@@ -21,7 +21,7 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu 22.04
# Valid for Ubuntu 24.04
#
#---------------------------------------------------------------------
@@ -59,13 +59,13 @@ RUN /bin/sh oaienv && \
#start from scratch for target executable
FROM ubuntu:jammy AS oai-gnb-aerial
FROM ubuntu:noble AS oai-gnb-aerial
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 \
apt-get upgrade --yes && \
apt-get install --yes \
software-properties-common \
procps \
libsctp1 \
@@ -21,7 +21,7 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu 22.04
# Valid for Ubuntu 24.04
#
#---------------------------------------------------------------------
@@ -58,13 +58,13 @@ RUN /bin/sh oaienv && \
#start from scratch for target executable
FROM ubuntu:jammy AS oai-gnb-aerial
FROM ubuntu:noble AS oai-gnb-aerial
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 \
apt-get upgrade --yes && \
apt-get install --yes \
software-properties-common \
procps \
libsctp1 \
@@ -21,7 +21,7 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu 22.04
# Valid for Ubuntu 24.04
#
#---------------------------------------------------------------------
@@ -38,13 +38,13 @@ RUN /bin/sh oaienv && \
./build_oai -w AW2SORI -t Ethernet
#start from scratch for target executable
FROM ubuntu:jammy as oai-gnb-aw2s
FROM ubuntu:noble AS oai-gnb-aw2s
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 \
apt-get upgrade --yes && \
apt-get install --yes \
procps \
libsctp1 \
tzdata \
@@ -21,7 +21,7 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface 7.2 Fronthaul
# Valid for Ubuntu22.04
# Valid for Ubuntu24.04
#
#---------------------------------------------------------------------
@@ -31,14 +31,14 @@ FROM ran-build-fhi72:latest AS gnb-build
#start from scratch for target executable
FROM ubuntu:jammy AS oai-gnb
FROM ubuntu:noble 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 \
apt-get upgrade --yes && \
apt-get install --yes \
software-properties-common \
procps \
pkg-config \
@@ -62,7 +62,7 @@ RUN apt-get update && \
libyaml-cpp-dev && \
# 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 \
libasan8 \
libubsan1 \
liblapacke; fi' && \
rm -rf /var/lib/apt/lists/*
@@ -21,7 +21,7 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu20.04
# Valid for Ubuntu24.04
#
#---------------------------------------------------------------------
@@ -31,25 +31,25 @@ FROM ran-build:latest AS gnb-build
#start from scratch for target executable
FROM ubuntu:jammy AS oai-gnb
FROM ubuntu:noble AS oai-gnb
ARG BUILD_OPTION
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
apt-get upgrade --yes && \
apt-get install --yes \
software-properties-common \
procps \
libsctp1 \
libboost-chrono1.74.0 \
libboost-date-time1.74.0 \
libboost-filesystem1.74.0 \
libboost-regex1.74.0 \
libboost-serialization1.74.0 \
libboost-thread1.74.0 \
libboost-system1.74.0 \
libboost-program-options1.74.0 \
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 \
tzdata \
libblas3 \
libconfig9 \
@@ -67,29 +67,12 @@ RUN apt-get update && \
libyaml-cpp-dev && \
# 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 \ # see below
libasan8 \
libubsan1 \
liblapacke; fi' && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/*
# we select another compile (gcc-12) for compilation, requiring another libasan
# library version. Installing it above would install the wrong version. Hence,
# copy the right version from ran-build. When upgrading to Ubuntu24, install
# the correct one above!
# note: this dockerfile should work for both x86 and arm, hence the glob below
# which should either match "x86_64" (x86) or "aarch64" (ARM); since the target
# directory needs to be also one of those two, but globs don't work in target
# directories, work around this with mv
COPY --from=gnb-build /usr/lib/*-linux-gnu/libasan.so.8.0.0 /usr/lib/
ARG TARGETPLATFORM
RUN case "${TARGETPLATFORM}" in \
"linux/amd64") TARGET_DIR=x86_64-linux-gnu ;; \
"linux/arm64") TARGET_DIR=aarch64-linux-gnu ;; \
*) exit 1 ;; \
esac; \
mv /usr/lib/libasan.so.8.0.0 /usr/lib/$TARGET_DIR/libasan.so.8.0.0
WORKDIR /opt/oai-gnb/bin
COPY --from=gnb-build \
/oai-ran/cmake_targets/ran_build/build/nr-softmodem ./
@@ -21,7 +21,7 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu 22.04
# Valid for Ubuntu 24.04
#
#---------------------------------------------------------------------
@@ -31,16 +31,24 @@ FROM ran-build:latest AS ru-build
#start from scratch for target executable
FROM ubuntu:jammy AS oai-lte-ru
FROM ubuntu:noble AS oai-lte-ru
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
apt-get upgrade --yes && \
apt-get install --yes \
tzdata \
procps \
software-properties-common \
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 \
libconfig9 \
net-tools \
@@ -71,15 +79,6 @@ COPY --from=ru-base /usr/local/bin/uhd_find_devices /usr/local/bin
COPY --from=ru-base /usr/local/lib/libuhd.so.4.4.0 /usr/local/lib
COPY --from=ru-base /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ru/bin
COPY --from=ru-base \
/usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.74.0 \
/usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.74.0 \
/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.74.0 \
/usr/lib/x86_64-linux-gnu/libboost_regex.so.1.74.0 \
/usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.74.0 \
/usr/lib/x86_64-linux-gnu/libboost_thread.so.1.74.0 \
/usr/lib/x86_64-linux-gnu/libboost_system.so.1.74.0 \
/usr/lib/x86_64-linux-gnu/
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so /usr/local/lib/liboai_device.so" && \
ldconfig && \
@@ -21,7 +21,7 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu20.04
# Valid for Ubuntu24.04
#
#---------------------------------------------------------------------
@@ -31,25 +31,25 @@ FROM ran-build:latest AS lte-ue-build
#start from scratch for target executable
FROM ubuntu:jammy AS oai-lte-ue
FROM ubuntu:noble AS oai-lte-ue
ARG BUILD_OPTION
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
apt-get upgrade --yes && \
apt-get install --yes \
software-properties-common \
procps \
libsctp1 \
libboost-chrono1.74.0 \
libboost-date-time1.74.0 \
libboost-filesystem1.74.0 \
libboost-regex1.74.0 \
libboost-serialization1.74.0 \
libboost-thread1.74.0 \
libboost-system1.74.0 \
libboost-program-options1.74.0 \
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 \
tzdata \
liblapacke \
libblas3 \
@@ -59,7 +59,7 @@ RUN apt-get update && \
python3 \
python3-six \
python3-requests \
libpython3.10 \
libpython3.12 \
libusb-1.0-0 \
iputils-ping \
iproute2 \
@@ -74,18 +74,12 @@ RUN apt-get update && \
apt-get remove -y wget && \
# 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 \ # see below
libasan8 \
libubsan1 \
liblapacke; fi' && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/*
# we select another compile (gcc-12) for compilation, requiring another libasan
# library version. Installing it above would install the wrong version. Hence,
# copy the right version from ran-build. When upgrading to Ubuntu24, install
# the correct one above!
COPY --from=lte-ue-build /usr/lib/x86_64-linux-gnu/libasan.so.8.0.0 /usr/lib/x86_64-linux-gnu/
WORKDIR /opt/oai-lte-ue/bin
COPY --from=lte-ue-build \
/oai-ran/cmake_targets/ran_build/build/lte-uesoftmodem \
@@ -21,7 +21,7 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu20.04
# Valid for Ubuntu24.04
#
#---------------------------------------------------------------------
@@ -30,14 +30,14 @@ FROM ran-base:latest AS gnb-base
FROM ran-build:latest AS gnb-build
FROM ubuntu:jammy AS oai-nr-cuup
FROM ubuntu:noble AS oai-nr-cuup
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 \
apt-get upgrade --yes && \
apt-get install --yes \
libsctp1 \
libconfig9 \
iproute2 \
@@ -45,27 +45,11 @@ RUN apt-get update && \
openssl && \
# 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 \ see below
libasan8 \
libubsan1 \
liblapacke; fi' && \
rm -rf /var/lib/apt/lists/*
# we select another compile (gcc-12) for compilation, requiring another libasan
# library version. Installing it above would install the wrong version. Hence,
# copy the right version from ran-build. When upgrading to Ubuntu24, install
# the correct one above!
# note: this dockerfile should work for both x86 and arm, hence the glob below
# which should either match "x86_64" (x86) or "aarch64" (ARM); since the target
# directory needs to be also one of those two, but globs don't work in target
# directories, work around this with mv
COPY --from=gnb-build /usr/lib/*-linux-gnu/libasan.so.8.0.0 /usr/lib/
ARG TARGETPLATFORM
RUN case "${TARGETPLATFORM}" in \
"linux/amd64") TARGET_DIR=x86_64-linux-gnu ;; \
"linux/arm64") TARGET_DIR=aarch64-linux-gnu ;; \
*) exit 1 ;; \
esac; \
mv /usr/lib/libasan.so.8.0.0 /usr/lib/$TARGET_DIR/libasan.so.8.0.0
## Copy E2 SM models
COPY --from=gnb-build /usr/local/lib/flexric /usr/local/lib/flexric
@@ -21,7 +21,7 @@
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu 22.04
# Valid for Ubuntu 24.04
#
#---------------------------------------------------------------------
@@ -31,25 +31,25 @@ FROM ran-build:latest AS nr-ue-build
#start from scratch for target executable
FROM ubuntu:jammy AS oai-nr-ue
FROM ubuntu:noble AS oai-nr-ue
ARG BUILD_OPTION
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
apt-get upgrade --yes && \
apt-get install --yes \
software-properties-common \
procps \
libsctp1 \
libboost-chrono1.74.0 \
libboost-date-time1.74.0 \
libboost-filesystem1.74.0 \
libboost-regex1.74.0 \
libboost-serialization1.74.0 \
libboost-thread1.74.0 \
libboost-system1.74.0 \
libboost-program-options1.74.0 \
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 \
tzdata \
liblapacke \
libblas3 \
@@ -68,28 +68,11 @@ RUN apt-get update && \
libyaml-cpp-dev && \
# 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 \ # see below
libasan8 \
libubsan1; fi' && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/*
# we select another compile (gcc-12) for compilation, requiring another libasan
# library version. Installing it above would install the wrong version. Hence,
# copy the right version from ran-build. When upgrading to Ubuntu24, install
# the correct one above!
# note: this dockerfile should work for both x86 and arm, hence the glob below
# which should either match "x86_64" (x86) or "aarch64" (ARM); since the target
# directory needs to be also one of those two, but globs don't work in target
# directories, work around this with mv
COPY --from=nr-ue-build /usr/lib/*-linux-gnu/libasan.so.8.0.0 /usr/lib/
ARG TARGETPLATFORM
RUN case "${TARGETPLATFORM}" in \
"linux/amd64") TARGET_DIR=x86_64-linux-gnu ;; \
"linux/arm64") TARGET_DIR=aarch64-linux-gnu ;; \
*) exit 1 ;; \
esac; \
mv /usr/lib/libasan.so.8.0.0 /usr/lib/$TARGET_DIR/libasan.so.8.0.0
WORKDIR /opt/oai-nr-ue/bin
COPY --from=nr-ue-build \
/oai-ran/cmake_targets/ran_build/build/nr-uesoftmodem \
+8 -8
View File
@@ -78,7 +78,7 @@ Targets can be:
The currently-supported OS are:
- `rhel9` for Red Hat Enterprise Linux and Openshift Universal Base Image
- `ubuntu22` for Ubuntu 22.04 LTS
- `ubuntu` for Ubuntu 24.04 LTS
- `rocky` for Rocky-Linux 9
For more details regarding the build on an Openshift Cluster, see [OpenShift README](../openshift/README.md).
@@ -99,11 +99,11 @@ There are two shared images: one that has all dependencies, and a second that co
git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git
cd openairinterface5g
# default branch is develop, to change use git checkout <BRANCH>
docker build --target ran-base --tag ran-base:latest --file docker/Dockerfile.base.ubuntu22 .
docker build --target ran-base --tag ran-base:latest --file docker/Dockerfile.base.ubuntu .
# if you want use USRP, AW2S and RFSimulator radios
docker build --target ran-build --tag ran-build:latest --file docker/Dockerfile.build.ubuntu22 .
docker build --target ran-build --tag ran-build:latest --file docker/Dockerfile.build.ubuntu .
# if you want to use front-haul 7.2 and RFSimulator radios
docker build --tag ran-build-fhi72:latest --file docker/Dockerfile.build.fhi72.ubuntu22 .
docker build --tag ran-build-fhi72:latest --file docker/Dockerfile.build.fhi72.ubuntu .
```
After building:
@@ -126,7 +126,7 @@ This is only available for the Ubuntu version of Dockerfiles.
You can, for example, create a `sanitizer` version of the ran-build image.
```bash
docker build --target ran-build --tag ran-build:latest --file docker/Dockerfile.build.ubuntu22 --build-arg "BUILD_OPTION=--sanitize" .
docker build --target ran-build --tag ran-build:latest --file docker/Dockerfile.build.ubuntu --build-arg "BUILD_OPTION=--sanitize" .
```
Currently the `--sanitize` option for `build_oai` enables:
@@ -152,13 +152,13 @@ You can also use this docker build arguments to pass any available option(s) on
For example, the eNB:
```bash
docker build --target oai-enb --tag oai-enb:latest --file docker/Dockerfile.eNB.ubuntu22 .
docker build --target oai-enb --tag oai-enb:latest --file docker/Dockerfile.eNB.ubuntu .
```
To build gNB/DU with 7.2 fronthaul support:
```bash
docker build --target oai-gnb-fhi72 --tag oai-gnb-fhi72:latest --file docker/Dockerfile.gNB.fhi72.ubuntu22 .
docker build --target oai-gnb-fhi72 --tag oai-gnb-fhi72:latest --file docker/Dockerfile.gNB.fhi72.ubuntu .
```
After a while:
@@ -182,7 +182,7 @@ Note that the steps are identical for `rocky-linux`.
If you have used the sanitizer option, then you should also pass it when building the target image:
```bash
docker build --target oai-gnb --tag oai-gnb:latest --file docker/Dockerfile.gNB.ubuntu22 --build-arg "BUILD_OPTION=--sanitize" .
docker build --target oai-gnb --tag oai-gnb:latest --file docker/Dockerfile.gNB.ubuntu --build-arg "BUILD_OPTION=--sanitize" .
```
Normally the target image will be around 200 Mbytes bigger.
@@ -997,7 +997,7 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y,
#elif defined(__arm__) || defined(__aarch64__)
int16x8_t *yp128;
// int16x8_t tmp128[(n+8)>>3];
int16x8_t tmp, zeros=vdupq_n_s16(0);
int16x8_t tmp = {}, zeros = {};
const uint16_t __attribute__ ((aligned (16))) _Powers[8]=
{ 1, 2, 4, 8, 16, 32, 64, 128};
uint16x8_t Powers= vld1q_u16(_Powers);
@@ -930,7 +930,7 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y,
#elif defined(__arm__) || defined(__aarch64__)
int8x16_t *yp128;
int8x16_t tmp128[(n+8)>>3];
int8x16_t tmp, zeros=vdupq_n_s8(0);
int8x16_t tmp = {}, zeros = {};
const uint8_t __attribute__ ((aligned (16))) _Powers[16]=
{ 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128 };
// Set the powers of 2 (do it once for all, if applicable)
+1 -1
View File
@@ -2,7 +2,7 @@
## Description
This contains bash scripts for managing a ubuntu22 dockerized development enviroment for OAI. No need to install any
This contains bash scripts for managing a ubuntu24 dockerized development enviroment for OAI. No need to install any
tools on host machines except for docker
- `bootstrap.sh` - build development environment image and install the following bash aliases in `~/.bash_aliases`:
+1 -1
View File
@@ -11,7 +11,7 @@ fi
if ! docker images | grep -q "ran-base"; then
echo "ran-base:latest image not found. Building the image..."
docker build -f ../../docker/Dockerfile.base.ubuntu22 -t ran-base:latest ../../
docker build -f ../../docker/Dockerfile.base.ubuntu -t ran-base:latest ../../
else
echo "ran-base:latest image found."
fi