This commit introduces a fully dockerized dev env you can start on any machine that has docker without installing any direct OAI dependencies on host. This allows to migrate development environments between machines easily. Several complementary scripts were added to enable smooth transition between your docker environment and host environment. Your user and sudo should work inside the environment.
42 lines
1.5 KiB
Docker
42 lines
1.5 KiB
Docker
FROM ran-base:latest
|
|
ARG USERNAME=root
|
|
ARG USER_UID=1000
|
|
ARG USER_GID=1000
|
|
|
|
# More developer tools can be added here
|
|
RUN apt update && apt install -y vim sudo wget meson ninja-build libnuma-dev ccache
|
|
|
|
# Create the user
|
|
RUN groupadd --gid $USER_GID $USERNAME \
|
|
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
|
|
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
|
|
&& chmod 0440 /etc/sudoers.d/$USERNAME
|
|
|
|
## Download and build DPDK
|
|
RUN cd /oai-ran && \
|
|
wget http://fast.dpdk.org/rel/dpdk-20.11.9.tar.xz && \
|
|
tar -xvf dpdk-20.11.9.tar.xz && \
|
|
cd dpdk-stable-20.11.9 && \
|
|
meson build && \
|
|
ninja -C build && \
|
|
ninja install -C build
|
|
|
|
## Build Fronthaul library
|
|
COPY cmake_targets/tools/oran_fhi_integration_patches/F/oaioran_F.patch /oaioran_F.patch
|
|
RUN git clone https://gerrit.o-ran-sc.org/r/o-du/phy.git /opt/phy && \
|
|
cd /opt/phy && \
|
|
git checkout oran_f_release_v1.0 &&\
|
|
git apply /oaioran_F.patch && \
|
|
cd /opt/phy/fhi_lib/lib && \
|
|
WIRELESS_SDK_TOOLCHAIN=gcc RTE_SDK=/oai-ran/dpdk-stable-20.11.9/ XRAN_DIR=/opt/phy/fhi_lib make XRAN_LIB_SO=1
|
|
ENV xran_LOCATION=/opt/phy/fhi_lib/lib/
|
|
|
|
# This is a temporary solution to issue with apt: one of the installed packages creates a group that may
|
|
# not be present in the host: remove the group entry to allow apt usage in container
|
|
RUN dpkg-statoverride --remove /usr/bin/uml_net
|
|
|
|
# Override ccache directory to avoid permission issues
|
|
ENV CCACHE_DIR=/home/$USERNAME/.cache/ccache-oai-dev-env
|
|
|
|
USER $USERNAME
|