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) self.host = result.group(0)
if self.host == 'Ubuntu': if self.host == 'Ubuntu':
self.cli = 'docker' self.cli = 'docker'
self.dockerfileprefix = '.ubuntu22' self.dockerfileprefix = '.ubuntu'
self.cliBuildOptions = '' self.cliBuildOptions = ''
elif self.host == 'Red Hat': elif self.host == 'Red Hat':
self.cli = 'sudo podman' self.cli = 'sudo podman'
@@ -337,7 +337,7 @@ class Containerize():
imageNames.append(('oai-gnb', 'gNB.fhi72', 'oai-gnb-fhi72', '')) imageNames.append(('oai-gnb', 'gNB.fhi72', 'oai-gnb-fhi72', ''))
result = re.search('build_cross_arm64', self.imageKind) result = re.search('build_cross_arm64', self.imageKind)
if result is not None: if result is not None:
self.dockerfileprefix = '.ubuntu22.cross-arm64' self.dockerfileprefix = '.ubuntu.cross-arm64'
result = re.search('native_arm', self.imageKind) result = re.search('native_arm', self.imageKind)
if result is not None: if result is not None:
imageNames.append(('oai-gnb', 'gNB', 'oai-gnb', '')) imageNames.append(('oai-gnb', 'gNB', 'oai-gnb', ''))
@@ -625,7 +625,7 @@ class Containerize():
return False return False
# build ran-unittests image # 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' logfile = f'{lSourcePath}/cmake_targets/log/unittest-build.log'
ret = cmd.run(f'docker build --progress=plain --tag ran-unittests:{baseTag} --file {dockerfile} . &> {logfile}') ret = cmd.run(f'docker build --progress=plain --tag ran-unittests:{baseTag} --file {dockerfile} . &> {logfile}')
archiveArtifact(cmd, ctx, logfile) archiveArtifact(cmd, ctx, logfile)
+1 -1
View File
@@ -212,7 +212,7 @@ class StaticCodeAnalysis():
logDir = f'{lSourcePath}/cmake_targets/log/' logDir = f'{lSourcePath}/cmake_targets/log/'
cmd.run(f'mkdir -p {logDir}') cmd.run(f'mkdir -p {logDir}')
cmd.run('docker image rm oai-formatting-check:latest') 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 rm oai-formatting-check:latest')
cmd.run('docker image prune --force') cmd.run('docker image prune --force')
+2 -2
View File
@@ -30,8 +30,8 @@ FROM ubuntu:xenial AS oai-cppcheck
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \ apt-get install --yes \
build-essential \ build-essential \
vim \ vim \
cppcheck cppcheck
@@ -21,11 +21,11 @@
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# #
# Dockerfile for the Open-Air-Interface BUILD service # 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 MERGE_REQUEST
ARG SRC_BRANCH ARG SRC_BRANCH
@@ -33,8 +33,8 @@ ARG TARGET_BRANCH
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \ apt-get install --yes \
gawk \ gawk \
git git
@@ -21,7 +21,7 @@
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# #
# Dockerfile for the Open-Air-Interface BUILD service # 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 image: ran-base
build: build:
context: ../../../ context: ../../../
dockerfile: docker/Dockerfile.base.ubuntu22 dockerfile: docker/Dockerfile.base.ubuntu
tags: tags:
- ran-base - ran-base
@@ -11,7 +11,7 @@ services:
image: ran-build image: ran-build
build: build:
context: ../../../ context: ../../../
dockerfile: docker/Dockerfile.build.ubuntu22 dockerfile: docker/Dockerfile.build.ubuntu
tags: tags:
- ran-build - ran-build
depends_on: depends_on:
@@ -22,7 +22,7 @@ services:
image: gnb-local image: gnb-local
build: build:
context: ../../../ context: ../../../
dockerfile: docker/Dockerfile.gNB.ubuntu22 dockerfile: docker/Dockerfile.gNB.ubuntu
tags: tags:
- gnb-local - gnb-local
depends_on: depends_on:
@@ -35,7 +35,7 @@ services:
image: ue-local image: ue-local
build: build:
context: ../../../ context: ../../../
dockerfile: docker/Dockerfile.nrUE.ubuntu22 dockerfile: docker/Dockerfile.nrUE.ubuntu
tags: tags:
- ue-local - ue-local
depends_on: depends_on:
+2 -2
View File
@@ -1,8 +1,8 @@
set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm) set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_C_COMPILER /usr/bin/aarch64-linux-gnu-gcc-11) set(CMAKE_C_COMPILER /usr/bin/aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER /usr/bin/aarch64-linux-gnu-g++-11) set(CMAKE_CXX_COMPILER /usr/bin/aarch64-linux-gnu-g++)
set(ENV{PKG_CONFIG_LIBDIR} "/usr/lib/aarch64-linux-gnu/pkgconfig") 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.14.1 -y || true
$SUDO apt-get remove libuhd3.15.0 -y || true $SUDO apt-get remove libuhd3.15.0 -y || true
local distribution=$(get_distribution_release) 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 $SUDO apt-get remove libuhd4.?.? -y || true
fi fi
v=$(lsb_release -cs) 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`) In order to build the target image (`oai-gnb-aerial`), first you should build a common shared image (`ran-base`)
```bash ```bash
~$ cd ~/openairinterface5g/ ~$ cd ~/openairinterface5g/
~/openairinterface5g$ docker build . -f docker/Dockerfile.base.ubuntu22 --tag ran-base:latest ~/openairinterface5g$ docker build . -f docker/Dockerfile.base.ubuntu --tag ran-base:latest
~/openairinterface5g$ docker build . -f docker/Dockerfile.gNB.aerial.ubuntu22 --tag oai-gnb-aerial: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 - [formatting](../tools/formatting/README.md) is a clang-format error detection tool
- [iwyu](../tools/iwyu/README.md) is a tool to detect `#include` errors - [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/) - [RAN-ARM-Cross-Compile-Builder](https://jenkins-oai.eurecom.fr/job/RAN-ARM-Cross-Compile-Builder/)
~BUILD-ONLY ~4G-LTE ~5G-NR ~nrUE ~BUILD-ONLY ~4G-LTE ~5G-NR ~nrUE
- orion: Cross-compilation from Intel to ARM - orion: Cross-compilation from Intel to ARM
- base image from `Dockerfile.base.ubuntu22.cross-arm64` - base image from `Dockerfile.base.ubuntu.cross-arm64`
- build image from `Dockerfile.build.ubuntu22.cross-arm64` (no target images) - build image from `Dockerfile.build.ubuntu.cross-arm64` (no target images)
- [RAN-cppcheck](https://jenkins-oai.eurecom.fr/job/RAN-cppcheck/) - [RAN-cppcheck](https://jenkins-oai.eurecom.fr/job/RAN-cppcheck/)
~BUILD-ONLY ~4G-LTE ~5G-NR ~nrUE ~BUILD-ONLY ~4G-LTE ~5G-NR ~nrUE
- bellatrix - bellatrix
@@ -112,29 +112,29 @@ information on how the images are built.
- build image from `Dockerfile.clang.rhel9` (compilation only, artifacts not used currently) - 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/) - [RAN-Ubuntu18-Image-Builder](https://jenkins-oai.eurecom.fr/job/RAN-Ubuntu18-Image-Builder/)
~BUILD-ONLY ~4G-LTE ~5G-NR ~nrUE ~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!) - obelix: Ubuntu 22 image build using docker (Note: builds U22 images while pipeline is named U18!)
- base image from `Dockerfile.base.ubuntu22` - base image from `Dockerfile.base.ubuntu`
- build image from `Dockerfile.build.ubuntu22`, followed by - build image from `Dockerfile.build.ubuntu`, followed by
- target image from `Dockerfile.eNB.ubuntu22` - target image from `Dockerfile.eNB.ubuntu`
- target image from `Dockerfile.gNB.ubuntu22` - target image from `Dockerfile.gNB.ubuntu`
- target image from `Dockerfile.nr-cuup.ubuntu22` - target image from `Dockerfile.nr-cuup.ubuntu`
- target image from `Dockerfile.nrUE.ubuntu22` - target image from `Dockerfile.nrUE.ubuntu`
- target image from `Dockerfile.lteUE.ubuntu22` - target image from `Dockerfile.lteUE.ubuntu`
- target image from `Dockerfile.lteRU.ubuntu22` - target image from `Dockerfile.lteRU.ubuntu`
- target image from `Dockerfile.gNB.aerial.ubuntu22` - target image from `Dockerfile.gNB.aerial.ubuntu`
- build image from `Dockerfile.build.fhi72.ubuntu22`, followed by - build image from `Dockerfile.build.fhi72.ubuntu`, followed by
- target image from `Dockerfile.gNB.fhi72.ubuntu22` - target image from `Dockerfile.gNB.fhi72.ubuntu`
- build unit tests from `ci-scripts/docker/Dockerfile.unittest.ubuntu22`, and run them - 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/) - [RAN-Ubuntu-ARM-Image-Builder](https://jenkins-oai.eurecom.fr/job/RAN-Ubuntu-ARM-Image-Builder/)
~BUILD-ONLY ~4G-LTE ~5G-NR ~BUILD-ONLY ~4G-LTE ~5G-NR
- gracehopper3-oai: ARM Ubuntu 22 image build using docker - gracehopper3-oai: ARM Ubuntu 22 image build using docker
- base image from `Dockerfile.base.ubuntu22` - base image from `Dockerfile.base.ubuntu`
- build image from `Dockerfile.build.ubuntu22`, followed by - build image from `Dockerfile.build.ubuntu`, followed by
- target image from `Dockerfile.gNB.ubuntu22` - target image from `Dockerfile.gNB.ubuntu`
- target image from `Dockerfile.nr-cuup.ubuntu22` - target image from `Dockerfile.nr-cuup.ubuntu`
- target image from `Dockerfile.nrUE.ubuntu22` - target image from `Dockerfile.nrUE.ubuntu`
- target image from `Dockerfile.gNB.aerial.ubuntu22` - target image from `Dockerfile.gNB.aerial.ubuntu`
#### Image Test pipelines #### 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 sed -i -E "s/(deb)\ (http:.+)/\1\ [arch=amd64]\ \2/" /etc/apt/sources.list
sudo apt update sudo apt update
sudo apt install -y gcc-11-aarch64-linux-gnu \ sudo apt install -y gcc-aarch64-linux-gnu \
g++-11-aarch64-linux-gnu g++-aarch64-linux-gnu
sudo apt-get install -y \ sudo apt-get install -y \
libblas-dev:arm64 \ libblas-dev:arm64 \
@@ -97,5 +97,5 @@ ninja params_libconfig coding rfsimulator
# Further information # Further information
You can do the above steps using docker, see dockerfiles You can do the above steps using docker, see dockerfiles
`docker/Dockerfile.base.ubuntu22.cross-arm64` and `docker/Dockerfile.base.ubuntu.cross-arm64` and
`docker/Dockerfile.build.ubuntu22.cross-arm64` for more information. `docker/Dockerfile.build.ubuntu.cross-arm64` for more information.
@@ -21,12 +21,12 @@
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# #
# Dockerfile for the Open-Air-Interface BUILD service # 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 NEEDED_GIT_PROXY
ARG TARGETARCH ARG TARGETARCH
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
@@ -36,16 +36,13 @@ ENV UHD_VERSION=4.4.0.0
#install developers pkg/repo #install developers pkg/repo
RUN apt-get update && \ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \ apt-get install --yes \
#gcc needed for build_oai #gcc needed for build_oai
build-essential \ build-essential \
ccache \ ccache \
psmisc \ psmisc \
git \ git \
#use gcc-12 to avoid problems of default gcc-11 in FlexRIC
gcc-12 \
g++-12 \
xxd \ xxd \
libpcre2-dev \ libpcre2-dev \
python3-dev \ python3-dev \
@@ -55,8 +52,8 @@ RUN apt-get update && \
# python3-pip for conf template generation # python3-pip for conf template generation
python3-pip \ python3-pip \
wget && \ wget && \
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100 --slave /usr/bin/g++ g++ /usr/bin/g++-12 && \ # --break-system-packages allows externally managed environment in pip
pip3 install --ignore-installed pyyaml pip3 install --ignore-installed pyyaml --break-system-packages
# Add "Tini - A tiny but valid init for containers", https://github.com/krallin/tini # 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 # 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 # 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. # Very important, the noble image shall not be using mirrors. A lot of them do NOT support ARM64.
FROM ubuntu:jammy AS ran-base FROM ubuntu:noble AS ran-base
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris ENV TZ=Europe/Paris
# Specifying a working version of SIMDE for ARM: # Specifying a working version of SIMDE for ARM:
@@ -34,22 +34,23 @@ ENV SIMDE_VERSION=389f360a66d4a3bec62b7d71ad8be877487809ba
#install developers pkg/repo #install developers pkg/repo
RUN apt-get update && \ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ apt-get upgrade --yes && \
#enabling arm64 architecture #enabling arm64 architecture
dpkg --add-architecture arm64 && \ dpkg --add-architecture arm64 && \
echo "deb [arch=arm64] http://ports.ubuntu.com/ jammy main restricted\n" \ echo "deb [arch=arm64] http://ports.ubuntu.com/ noble main restricted\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ jammy-updates main restricted\n" \ "deb [arch=arm64] http://ports.ubuntu.com/ noble-updates main restricted\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ jammy universe\n" \ "deb [arch=arm64] http://ports.ubuntu.com/ noble universe\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ jammy-updates universe\n" \ "deb [arch=arm64] http://ports.ubuntu.com/ noble-updates universe\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ jammy multiverse\n" \ "deb [arch=arm64] http://ports.ubuntu.com/ noble multiverse\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ jammy-updates multiverse\n" \ "deb [arch=arm64] http://ports.ubuntu.com/ noble-updates multiverse\n" \
"deb [arch=arm64] http://ports.ubuntu.com/ jammy-backports main restricted universe multiverse" \ "deb [arch=arm64] http://ports.ubuntu.com/ noble-backports main restricted universe multiverse" \
| tee /etc/apt/sources.list.d/arm-cross-compile-sources.list && \ | tee /etc/apt/sources.list.d/arm-cross-compile-sources.list && \
cp /etc/apt/sources.list "/etc/apt/sources.list.`date`.backup" && \ 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 -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 && \ apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \ apt-get install --yes \
build-essential \ build-essential \
psmisc \ psmisc \
git \ git \
@@ -69,8 +70,8 @@ RUN apt-get update && \
libyaml-cpp-dev:arm64 \ libyaml-cpp-dev:arm64 \
# cross build libs and compilers # cross build libs and compilers
libc6-dev-i386 \ libc6-dev-i386 \
gcc-11-aarch64-linux-gnu \ gcc-aarch64-linux-gnu \
g++-11-aarch64-linux-gnu && \ g++-aarch64-linux-gnu && \
apt-get clean apt-get clean
# Add "Tini - A tiny but valid init for containers", https://github.com/krallin/tini # 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 # 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 DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe ENV TZ=Europe
RUN apt-get update && \ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \ apt-get install --yes \
meson \ meson \
wget \ wget \
xz-utils \ xz-utils \
@@ -94,8 +94,6 @@ RUN mkdir -p openair2/E2AP/flexric/build && \
cmake -GNinja -DCMAKE_BUILD_TYPE=Release \ cmake -GNinja -DCMAKE_BUILD_TYPE=Release \
-DXAPP_MULTILANGUAGE=OFF \ -DXAPP_MULTILANGUAGE=OFF \
-DKPM_VERSION=$KPM_VERSION \ -DKPM_VERSION=$KPM_VERSION \
-DE2AP_VERSION=$E2AP_VERSION \ -DE2AP_VERSION=$E2AP_VERSION .. && \
-DCMAKE_C_COMPILER=gcc-12 \
-DCMAKE_CXX_COMPILER=g++-12 .. && \
ninja && \ ninja && \
ninja install ninja install
@@ -21,7 +21,7 @@
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# #
# Dockerfile for the Open-Air-Interface RAN Build for FHI 7.2 # 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 DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe ENV TZ=Europe
RUN apt-get update && \ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \ apt-get install --yes \
meson \ meson \
wget \ wget \
xz-utils \ xz-utils \
@@ -83,8 +83,6 @@ RUN mkdir -p openair2/E2AP/flexric/build && \
cd openair2/E2AP/flexric/build && \ cd openair2/E2AP/flexric/build && \
cmake -GNinja -DCMAKE_BUILD_TYPE=Release \ cmake -GNinja -DCMAKE_BUILD_TYPE=Release \
-DKPM_VERSION=$KPM_VERSION \ -DKPM_VERSION=$KPM_VERSION \
-DE2AP_VERSION=$E2AP_VERSION \ -DE2AP_VERSION=$E2AP_VERSION .. && \
-DCMAKE_C_COMPILER=gcc-12 \
-DCMAKE_CXX_COMPILER=g++-12 .. && \
ninja && \ ninja && \
ninja install ninja install
@@ -21,7 +21,7 @@
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# #
# Dockerfile for the Open-Air-Interface BUILD service # 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 && \ cd openair2/E2AP/flexric/build && \
cmake -GNinja -DCMAKE_BUILD_TYPE=Release \ cmake -GNinja -DCMAKE_BUILD_TYPE=Release \
-DKPM_VERSION=$KPM_VERSION \ -DKPM_VERSION=$KPM_VERSION \
-DE2AP_VERSION=$E2AP_VERSION \ -DE2AP_VERSION=$E2AP_VERSION .. && \
-DCMAKE_C_COMPILER=gcc-12 \
-DCMAKE_CXX_COMPILER=g++-12 .. && \
ninja && \ ninja && \
ninja install ninja install
@@ -21,7 +21,7 @@
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# #
# Dockerfile for the Open-Air-Interface BUILD service # 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 # 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 #start from scratch for target executable
FROM ubuntu:jammy AS oai-enb FROM ubuntu:noble AS oai-enb
ARG BUILD_OPTION ARG BUILD_OPTION
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris ENV TZ=Europe/Paris
RUN apt-get update && \ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \ apt-get install --yes \
software-properties-common \ software-properties-common \
procps \ procps \
libsctp1 \ libsctp1 \
libboost-chrono1.74.0 \ libboost-chrono1.83.0 \
libboost-date-time1.74.0 \ libboost-date-time1.83.0 \
libboost-filesystem1.74.0 \ libboost-filesystem1.83.0 \
libboost-regex1.74.0 \ libboost-regex1.83.0 \
libboost-serialization1.74.0 \ libboost-serialization1.83.0 \
libboost-thread1.74.0 \ libboost-thread1.83.0 \
libboost-system1.74.0 \ libboost-system1.83.0 \
libboost-program-options1.74.0 \ libboost-program-options1.83.0 \
tzdata \ tzdata \
libblas3 \ libblas3 \
libconfig9 \ libconfig9 \
@@ -73,18 +73,12 @@ RUN apt-get update && \
apt-get remove -y wget && \ apt-get remove -y wget && \
# if the --sanitize option was used to build, additional packages are required # 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 \ /bin/bash -c 'if [[ "$BUILD_OPTION" = "--sanitize" ]]; then DEBIAN_FRONTEND=noninteractive apt-get install --yes \
#libasan5 \ # see below libasan8 \
libubsan1 \ libubsan1 \
liblapacke; fi' && \ liblapacke; fi' && \
apt-get clean -y && \ apt-get clean -y && \
rm -rf /var/lib/apt/lists/* 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 WORKDIR /opt/oai-enb/bin
COPY --from=enb-build \ COPY --from=enb-build \
/oai-ran/cmake_targets/ran_build/build/lte-softmodem ./ /oai-ran/cmake_targets/ran_build/build/lte-softmodem ./
@@ -21,7 +21,7 @@
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# #
# Dockerfile for the Open-Air-Interface BUILD service # 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 #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 DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe ENV TZ=Europe
RUN apt-get update && \ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \ apt-get install --yes \
software-properties-common \ software-properties-common \
procps \ procps \
libsctp1 \ libsctp1 \
@@ -21,7 +21,7 @@
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# #
# Dockerfile for the Open-Air-Interface BUILD service # 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 #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 DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe ENV TZ=Europe
RUN apt-get update && \ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \ apt-get install --yes \
software-properties-common \ software-properties-common \
procps \ procps \
libsctp1 \ libsctp1 \
@@ -21,7 +21,7 @@
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# #
# Dockerfile for the Open-Air-Interface BUILD service # 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 ./build_oai -w AW2SORI -t Ethernet
#start from scratch for target executable #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 DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe ENV TZ=Europe
RUN apt-get update && \ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \ apt-get install --yes \
procps \ procps \
libsctp1 \ libsctp1 \
tzdata \ tzdata \
@@ -21,7 +21,7 @@
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# #
# Dockerfile for the Open-Air-Interface 7.2 Fronthaul # 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 #start from scratch for target executable
FROM ubuntu:jammy AS oai-gnb FROM ubuntu:noble AS oai-gnb
ARG BUILD_OPTION ARG BUILD_OPTION
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe ENV TZ=Europe
RUN apt-get update && \ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \ apt-get install --yes \
software-properties-common \ software-properties-common \
procps \ procps \
pkg-config \ pkg-config \
@@ -62,7 +62,7 @@ RUN apt-get update && \
libyaml-cpp-dev && \ libyaml-cpp-dev && \
# if the --sanitize option was used to build, additional packages are required # 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 \ /bin/bash -c 'if [[ "$BUILD_OPTION" = "--sanitize" ]]; then DEBIAN_FRONTEND=noninteractive apt-get install --yes \
libasan5 \ libasan8 \
libubsan1 \ libubsan1 \
liblapacke; fi' && \ liblapacke; fi' && \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
@@ -21,7 +21,7 @@
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# #
# Dockerfile for the Open-Air-Interface BUILD service # 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 #start from scratch for target executable
FROM ubuntu:jammy AS oai-gnb FROM ubuntu:noble AS oai-gnb
ARG BUILD_OPTION ARG BUILD_OPTION
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris ENV TZ=Europe/Paris
RUN apt-get update && \ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \ apt-get install --yes \
software-properties-common \ software-properties-common \
procps \ procps \
libsctp1 \ libsctp1 \
libboost-chrono1.74.0 \ libboost-chrono1.83.0 \
libboost-date-time1.74.0 \ libboost-date-time1.83.0 \
libboost-filesystem1.74.0 \ libboost-filesystem1.83.0 \
libboost-regex1.74.0 \ libboost-regex1.83.0 \
libboost-serialization1.74.0 \ libboost-serialization1.83.0 \
libboost-thread1.74.0 \ libboost-thread1.83.0 \
libboost-system1.74.0 \ libboost-system1.83.0 \
libboost-program-options1.74.0 \ libboost-program-options1.83.0 \
tzdata \ tzdata \
libblas3 \ libblas3 \
libconfig9 \ libconfig9 \
@@ -67,29 +67,12 @@ RUN apt-get update && \
libyaml-cpp-dev && \ libyaml-cpp-dev && \
# if the --sanitize option was used to build, additional packages are required # 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 \ /bin/bash -c 'if [[ "$BUILD_OPTION" = "--sanitize" ]]; then DEBIAN_FRONTEND=noninteractive apt-get install --yes \
#libasan5 \ # see below libasan8 \
libubsan1 \ libubsan1 \
liblapacke; fi' && \ liblapacke; fi' && \
apt-get clean -y && \ apt-get clean -y && \
rm -rf /var/lib/apt/lists/* 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 WORKDIR /opt/oai-gnb/bin
COPY --from=gnb-build \ COPY --from=gnb-build \
/oai-ran/cmake_targets/ran_build/build/nr-softmodem ./ /oai-ran/cmake_targets/ran_build/build/nr-softmodem ./
@@ -21,7 +21,7 @@
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# #
# Dockerfile for the Open-Air-Interface BUILD service # 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 #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 DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris ENV TZ=Europe/Paris
RUN apt-get update && \ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \ apt-get install --yes \
tzdata \ tzdata \
procps \ procps \
software-properties-common \ 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 \ libblas3 \
libconfig9 \ libconfig9 \
net-tools \ 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/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/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" && \ RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so /usr/local/lib/liboai_device.so" && \
ldconfig && \ ldconfig && \
@@ -21,7 +21,7 @@
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# #
# Dockerfile for the Open-Air-Interface BUILD service # 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 #start from scratch for target executable
FROM ubuntu:jammy AS oai-lte-ue FROM ubuntu:noble AS oai-lte-ue
ARG BUILD_OPTION ARG BUILD_OPTION
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris ENV TZ=Europe/Paris
RUN apt-get update && \ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \ apt-get install --yes \
software-properties-common \ software-properties-common \
procps \ procps \
libsctp1 \ libsctp1 \
libboost-chrono1.74.0 \ libboost-chrono1.83.0 \
libboost-date-time1.74.0 \ libboost-date-time1.83.0 \
libboost-filesystem1.74.0 \ libboost-filesystem1.83.0 \
libboost-regex1.74.0 \ libboost-regex1.83.0 \
libboost-serialization1.74.0 \ libboost-serialization1.83.0 \
libboost-thread1.74.0 \ libboost-thread1.83.0 \
libboost-system1.74.0 \ libboost-system1.83.0 \
libboost-program-options1.74.0 \ libboost-program-options1.83.0 \
tzdata \ tzdata \
liblapacke \ liblapacke \
libblas3 \ libblas3 \
@@ -59,7 +59,7 @@ RUN apt-get update && \
python3 \ python3 \
python3-six \ python3-six \
python3-requests \ python3-requests \
libpython3.10 \ libpython3.12 \
libusb-1.0-0 \ libusb-1.0-0 \
iputils-ping \ iputils-ping \
iproute2 \ iproute2 \
@@ -74,18 +74,12 @@ RUN apt-get update && \
apt-get remove -y wget && \ apt-get remove -y wget && \
# if the --sanitize option was used to build, additional packages are required # 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 \ /bin/bash -c 'if [[ "$BUILD_OPTION" = "--sanitize" ]]; then DEBIAN_FRONTEND=noninteractive apt-get install --yes \
#libasan5 \ # see below libasan8 \
libubsan1 \ libubsan1 \
liblapacke; fi' && \ liblapacke; fi' && \
apt-get clean -y && \ apt-get clean -y && \
rm -rf /var/lib/apt/lists/* 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 WORKDIR /opt/oai-lte-ue/bin
COPY --from=lte-ue-build \ COPY --from=lte-ue-build \
/oai-ran/cmake_targets/ran_build/build/lte-uesoftmodem \ /oai-ran/cmake_targets/ran_build/build/lte-uesoftmodem \
@@ -21,7 +21,7 @@
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# #
# Dockerfile for the Open-Air-Interface BUILD service # 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 ran-build:latest AS gnb-build
FROM ubuntu:jammy AS oai-nr-cuup FROM ubuntu:noble AS oai-nr-cuup
ARG BUILD_OPTION ARG BUILD_OPTION
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe ENV TZ=Europe
RUN apt-get update && \ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \ apt-get install --yes \
libsctp1 \ libsctp1 \
libconfig9 \ libconfig9 \
iproute2 \ iproute2 \
@@ -45,27 +45,11 @@ RUN apt-get update && \
openssl && \ openssl && \
# if the --sanitize option was used to build, additional packages are required # 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 \ /bin/bash -c 'if [[ "$BUILD_OPTION" = "--sanitize" ]]; then DEBIAN_FRONTEND=noninteractive apt-get install --yes \
#libasan5 \ see below libasan8 \
libubsan1 \ libubsan1 \
liblapacke; fi' && \ liblapacke; fi' && \
rm -rf /var/lib/apt/lists/* 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 E2 SM models
COPY --from=gnb-build /usr/local/lib/flexric /usr/local/lib/flexric COPY --from=gnb-build /usr/local/lib/flexric /usr/local/lib/flexric
@@ -21,7 +21,7 @@
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# #
# Dockerfile for the Open-Air-Interface BUILD service # 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 #start from scratch for target executable
FROM ubuntu:jammy AS oai-nr-ue FROM ubuntu:noble AS oai-nr-ue
ARG BUILD_OPTION ARG BUILD_OPTION
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris ENV TZ=Europe/Paris
RUN apt-get update && \ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \ apt-get install --yes \
software-properties-common \ software-properties-common \
procps \ procps \
libsctp1 \ libsctp1 \
libboost-chrono1.74.0 \ libboost-chrono1.83.0 \
libboost-date-time1.74.0 \ libboost-date-time1.83.0 \
libboost-filesystem1.74.0 \ libboost-filesystem1.83.0 \
libboost-regex1.74.0 \ libboost-regex1.83.0 \
libboost-serialization1.74.0 \ libboost-serialization1.83.0 \
libboost-thread1.74.0 \ libboost-thread1.83.0 \
libboost-system1.74.0 \ libboost-system1.83.0 \
libboost-program-options1.74.0 \ libboost-program-options1.83.0 \
tzdata \ tzdata \
liblapacke \ liblapacke \
libblas3 \ libblas3 \
@@ -68,28 +68,11 @@ RUN apt-get update && \
libyaml-cpp-dev && \ libyaml-cpp-dev && \
# if the --sanitize option was used to build, additional packages are required # 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 \ /bin/bash -c 'if [[ "$BUILD_OPTION" = "--sanitize" ]]; then DEBIAN_FRONTEND=noninteractive apt-get install --yes \
#libasan5 \ # see below libasan8 \
libubsan1; fi' && \ libubsan1; fi' && \
apt-get clean -y && \ apt-get clean -y && \
rm -rf /var/lib/apt/lists/* 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 WORKDIR /opt/oai-nr-ue/bin
COPY --from=nr-ue-build \ COPY --from=nr-ue-build \
/oai-ran/cmake_targets/ran_build/build/nr-uesoftmodem \ /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: The currently-supported OS are:
- `rhel9` for Red Hat Enterprise Linux and Openshift Universal Base Image - `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 - `rocky` for Rocky-Linux 9
For more details regarding the build on an Openshift Cluster, see [OpenShift README](../openshift/README.md). 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 git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git
cd openairinterface5g cd openairinterface5g
# default branch is develop, to change use git checkout <BRANCH> # 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 # 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 # 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: 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. You can, for example, create a `sanitizer` version of the ran-build image.
```bash ```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: 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: For example, the eNB:
```bash ```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: To build gNB/DU with 7.2 fronthaul support:
```bash ```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: 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: If you have used the sanitizer option, then you should also pass it when building the target image:
```bash ```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. 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__) #elif defined(__arm__) || defined(__aarch64__)
int16x8_t *yp128; int16x8_t *yp128;
// int16x8_t tmp128[(n+8)>>3]; // 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]= const uint16_t __attribute__ ((aligned (16))) _Powers[8]=
{ 1, 2, 4, 8, 16, 32, 64, 128}; { 1, 2, 4, 8, 16, 32, 64, 128};
uint16x8_t Powers= vld1q_u16(_Powers); uint16x8_t Powers= vld1q_u16(_Powers);
@@ -930,7 +930,7 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y,
#elif defined(__arm__) || defined(__aarch64__) #elif defined(__arm__) || defined(__aarch64__)
int8x16_t *yp128; int8x16_t *yp128;
int8x16_t tmp128[(n+8)>>3]; 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]= const uint8_t __attribute__ ((aligned (16))) _Powers[16]=
{ 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128 }; { 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) // Set the powers of 2 (do it once for all, if applicable)
+1 -1
View File
@@ -2,7 +2,7 @@
## Description ## 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 tools on host machines except for docker
- `bootstrap.sh` - build development environment image and install the following bash aliases in `~/.bash_aliases`: - `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 if ! docker images | grep -q "ran-base"; then
echo "ran-base:latest image not found. Building the image..." 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 else
echo "ran-base:latest image found." echo "ran-base:latest image found."
fi fi