- Print problems, e.g., segfault - Handle signals and zombie processes properly
92 lines
3.7 KiB
Docker
92 lines
3.7 KiB
Docker
#/*
|
|
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
|
# * contributor license agreements. See the NOTICE file distributed with
|
|
# * this work for additional information regarding copyright ownership.
|
|
# * The OpenAirInterface Software Alliance licenses this file to You under
|
|
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
|
# * except in compliance with the License.
|
|
# * You may obtain a copy of the License at
|
|
# *
|
|
# * http://www.openairinterface.org/?page_id=698
|
|
# *
|
|
# * Unless required by applicable law or agreed to in writing, software
|
|
# * distributed under the License is distributed on an "AS IS" BASIS,
|
|
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# * See the License for the specific language governing permissions and
|
|
# * limitations under the License.
|
|
# *-------------------------------------------------------------------------------
|
|
# * For more information about the OpenAirInterface (OAI) Software Alliance:
|
|
# * contact@openairinterface.org
|
|
# */
|
|
#---------------------------------------------------------------------
|
|
#
|
|
# Dockerfile for the Open-Air-Interface BUILD service
|
|
# Valid for Ubuntu 20.04 to cross-compile for ARM64
|
|
#
|
|
#---------------------------------------------------------------------
|
|
|
|
# Very important, the focal image shall not be using mirrors. A lot of them do NOT support ARM64.
|
|
FROM ubuntu:focal AS ran-base
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV TZ=Europe/Paris
|
|
# Specifying a working version of SIMDE for ARM:
|
|
ENV SIMDE_VERSION=389f360a66d4a3bec62b7d71ad8be877487809ba
|
|
|
|
#install developers pkg/repo
|
|
RUN apt-get update && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
|
|
#enabling arm64 architecture
|
|
dpkg --add-architecture arm64 && \
|
|
echo "deb [arch=arm64] http://ports.ubuntu.com/ focal main restricted\n" \
|
|
"deb [arch=arm64] http://ports.ubuntu.com/ focal-updates main restricted\n" \
|
|
"deb [arch=arm64] http://ports.ubuntu.com/ focal universe\n" \
|
|
"deb [arch=arm64] http://ports.ubuntu.com/ focal-updates universe\n" \
|
|
"deb [arch=arm64] http://ports.ubuntu.com/ focal multiverse\n" \
|
|
"deb [arch=arm64] http://ports.ubuntu.com/ focal-updates multiverse\n" \
|
|
"deb [arch=arm64] http://ports.ubuntu.com/ focal-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 && \
|
|
apt-get update && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
|
|
build-essential \
|
|
psmisc \
|
|
git \
|
|
tzdata \
|
|
xxd \
|
|
# ARM64 packages
|
|
libatlas-base-dev:arm64 \
|
|
libblas-dev:arm64 \
|
|
liblapack-dev:arm64 \
|
|
liblapacke-dev:arm64 \
|
|
libreadline-dev:arm64 \
|
|
libgnutls28-dev:arm64 \
|
|
libconfig-dev:arm64 \
|
|
libsctp-dev:arm64 \
|
|
libssl-dev:arm64 \
|
|
libtool:arm64 \
|
|
zlib1g-dev:arm64 \
|
|
# cross build libs and compilers
|
|
libc6-dev-i386 \
|
|
gcc-9-aarch64-linux-gnu \
|
|
g++-9-aarch64-linux-gnu && \
|
|
apt-get clean
|
|
|
|
# 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
|
|
ENV TINI_VERSION v0.19.0
|
|
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini
|
|
RUN chmod +x /tini
|
|
|
|
# create the WORKDIR
|
|
WORKDIR /oai-ran
|
|
COPY . .
|
|
|
|
#run build_oai -I to get the builder image
|
|
RUN /bin/sh oaienv && \
|
|
cd cmake_targets && \
|
|
mkdir -p log && \
|
|
./build_oai -I && \
|
|
apt-get clean
|