From b2d440645fd45878d1b4ec410ab235d332def89f Mon Sep 17 00:00:00 2001
From: Raphael Defosseux <raphael.defosseux@eurecom.fr>
Date: Mon, 22 Nov 2021 13:30:03 +0100
Subject: [PATCH] perf(docker): limiting the number of layers on target images

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
---
 docker/Dockerfile.eNB.rhel8.2    | 73 +++++++++++++-----------
 docker/Dockerfile.eNB.ubuntu18   | 54 ++++++++++--------
 docker/Dockerfile.gNB.rhel8.2    | 81 ++++++++++++++-------------
 docker/Dockerfile.gNB.ubuntu18   | 60 +++++++++++---------
 docker/Dockerfile.lteRU.rhel8.2  | 58 ++++++++++---------
 docker/Dockerfile.lteRU.ubuntu18 | 38 ++++++++-----
 docker/Dockerfile.lteUE.rhel8.2  | 79 ++++++++++++++------------
 docker/Dockerfile.lteUE.ubuntu18 | 62 ++++++++++++---------
 docker/Dockerfile.nrUE.rhel8.2   | 82 ++++++++++++++-------------
 docker/Dockerfile.nrUE.ubuntu18  | 61 +++++++++++---------
 docker/Dockerfile.phySim.rhel8.2 | 96 +++++++++++++++-----------------
 docker/Dockerfile.ran.rhel8.2    |  5 +-
 docker/scripts/enb_entrypoint.sh |  8 +++
 docker/scripts/gnb_entrypoint.sh |  8 +++
 14 files changed, 419 insertions(+), 346 deletions(-)

diff --git a/docker/Dockerfile.eNB.rhel8.2 b/docker/Dockerfile.eNB.rhel8.2
index 0522271df01..185e31a2cd3 100644
--- a/docker/Dockerfile.eNB.rhel8.2
+++ b/docker/Dockerfile.eNB.rhel8.2
@@ -37,7 +37,8 @@ RUN /bin/sh oaienv && \
     mkdir -p log && \
     ./build_oai --eNB --ninja -w USRP --verbose-ci
 
-RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml
+RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml && \
+    cp /oai-ran/docker/scripts/enb_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
 
 #start from scratch for target executable
 FROM registry.access.redhat.com/ubi8/ubi:latest as oai-enb
@@ -62,42 +63,43 @@ RUN yum update -y && \
     echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
 
 WORKDIR /opt/oai-enb/bin
-COPY --from=enb-build /oai-ran/targets/bin/lte-softmodem.Rel15 .
-COPY --from=enb-build /oai-ran/docker/scripts/enb_entrypoint.sh entrypoint.sh
+COPY --from=enb-build \
+    /oai-ran/targets/bin/lte-softmodem.Rel15 \
+    /oai-ran/docker/scripts/entrypoint.sh \
+    ./
 
 WORKDIR /usr/local/lib/
-COPY --from=enb-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
-COPY --from=enb-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
-COPY --from=enb-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
-COPY --from=enb-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
-COPY --from=enb-build /oai-ran/targets/bin/libcoding.so .
-COPY --from=enb-build /oai-ran/targets/bin/libparams_libconfig.so .
-COPY --from=enb-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
-COPY --from=enb-build /oai-ran/cmake_targets/ran_build/build/liboai_iqplayer.so .
-RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so"
-RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so"
-RUN /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so"
-
-COPY --from=enb-build /usr/local/lib/libprotobuf-c.so.1 .
-
-COPY --from=enb-build /lib64/libconfig.so.9 /lib64
-COPY --from=enb-build /lib64/libblas.so.3 /lib64
-COPY --from=enb-build /lib64/liblapack.so.3 /lib64
-COPY --from=enb-build /lib64/liblapacke.so.3 /lib64
+COPY --from=enb-build \
+    /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
+    /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
+    /oai-ran/targets/bin/librfsimulator.so.Rel15 \
+    /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
+    /oai-ran/targets/bin/libcoding.so \
+    /oai-ran/targets/bin/libparams_libconfig.so \
+    /oai-ran/cmake_targets/ran_build/build/libdfts.so \
+    /oai-ran/cmake_targets/ran_build/build/liboai_iqplayer.so \
+    /usr/local/lib/libprotobuf-c.so.1 \
+    ./
+
+COPY --from=enb-build \
+    /lib64/libconfig.so.9 \
+    /lib64/libblas.so.3 \
+    /lib64/liblapack.so.3 \
+    /lib64/liblapacke.so.3 \
+    /lib64/libboost_chrono.so.1.66.0 \
+    /lib64/libboost_date_time.so.1.66.0 \
+    /lib64/libboost_filesystem.so.1.66.0 \
+    /lib64/libboost_program_options.so.1.66.0 \
+    /lib64/libboost_serialization.so.1.66.0 \
+    /lib64/libboost_thread.so.1.66.0 \
+    /lib64/libboost_system.so.1.66.0 \
+    /lib64/libboost_unit_test_framework.so.1.66.0 \
+    /lib64/libboost_atomic.so.1.66.0 \
+    /lib64/libboost_timer.so.1.66.0 \
+    /lib64/libboost_regex.so.1.66.0 \
+    /lib64/
 
 # Now we are copying from builder-image the UHD files.
-COPY --from=enb-build /lib64/libboost_chrono.so.1.66.0 /lib64
-COPY --from=enb-build /lib64/libboost_date_time.so.1.66.0 /lib64
-COPY --from=enb-build /lib64/libboost_filesystem.so.1.66.0 /lib64
-COPY --from=enb-build /lib64/libboost_program_options.so.1.66.0 /lib64
-COPY --from=enb-build /lib64/libboost_serialization.so.1.66.0 /lib64
-COPY --from=enb-build /lib64/libboost_thread.so.1.66.0 /lib64
-COPY --from=enb-build /lib64/libboost_system.so.1.66.0 /lib64
-COPY --from=enb-build /lib64/libboost_unit_test_framework.so.1.66.0 /lib64
-COPY --from=enb-build /lib64/libboost_atomic.so.1.66.0 /lib64
-COPY --from=enb-build /lib64/libboost_timer.so.1.66.0 /lib64
-COPY --from=enb-build /lib64/libboost_regex.so.1.66.0 /lib64
-
 COPY --from=enb-build /usr/local/bin/uhd_find_devices /usr/local/bin
 COPY --from=enb-build /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
 COPY --from=enb-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-enb/bin
@@ -105,7 +107,10 @@ COPY --from=enb-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/o
 WORKDIR /usr/local/share/uhd/rfnoc
 COPY --from=enb-build /usr/local/share/uhd/rfnoc/ .
 
-RUN ldconfig
+RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
+    /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
+    /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
+    ldconfig
 
 # Copy the relevant configuration files for eNB
 WORKDIR /opt/oai-enb/etc
diff --git a/docker/Dockerfile.eNB.ubuntu18 b/docker/Dockerfile.eNB.ubuntu18
index 360bf2e7cf1..5a5bf2a96da 100644
--- a/docker/Dockerfile.eNB.ubuntu18
+++ b/docker/Dockerfile.eNB.ubuntu18
@@ -37,7 +37,8 @@ RUN /bin/sh oaienv && \
     mkdir -p log && \
     ./build_oai --eNB --ninja -w USRP --verbose-ci
 
-RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml
+RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml && \
+    cp /oai-ran/docker/scripts/enb_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
 
 #start from scratch for target executable
 FROM ubuntu:bionic as oai-enb
@@ -48,6 +49,7 @@ RUN apt-get update && \
     DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
     DEBIAN_FRONTEND=noninteractive apt-get install --yes \
         software-properties-common \
+        tzdata \
         procps \
         libsctp1 \
         libnettle6 \
@@ -68,37 +70,43 @@ RUN apt-get update && \
     rm -rf /var/lib/apt/lists/*
 
 WORKDIR /opt/oai-enb/bin
-COPY --from=enb-build /oai-ran/targets/bin/lte-softmodem.Rel15 .
-COPY --from=enb-build /oai-ran/docker/scripts/enb_entrypoint.sh entrypoint.sh
+COPY --from=enb-build \
+    /oai-ran/targets/bin/lte-softmodem.Rel15 \
+    /oai-ran/docker/scripts/entrypoint.sh \
+    ./
 
 WORKDIR /usr/local/lib/
-COPY --from=enb-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
-COPY --from=enb-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
-COPY --from=enb-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
-COPY --from=enb-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
-COPY --from=enb-build /oai-ran/targets/bin/libcoding.so .
-COPY --from=enb-build /oai-ran/targets/bin/libparams_libconfig.so .
-COPY --from=enb-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
-COPY --from=enb-build /oai-ran/cmake_targets/ran_build/build/liboai_iqplayer.so .
-RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so"
-RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so"
-RUN /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so"
+COPY --from=enb-build \
+     /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
+     /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
+     /oai-ran/targets/bin/librfsimulator.so.Rel15 \
+     /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
+     /oai-ran/targets/bin/libcoding.so \
+     /oai-ran/targets/bin/libparams_libconfig.so \
+     /oai-ran/cmake_targets/ran_build/build/libdfts.so \
+     /oai-ran/cmake_targets/ran_build/build/liboai_iqplayer.so \
+     /usr/local/lib/libprotobuf-c.so.1 \
+     ./
 
-COPY --from=enb-build /usr/local/lib/libprotobuf-c.so.1 .
 # Now we are copying from builder-image the UHD files.
 COPY --from=enb-build /usr/local/bin/uhd_find_devices /usr/local/bin
 COPY --from=enb-build /usr/local/lib/libuhd.so.3.15.0 /usr/local/lib
 COPY --from=enb-build /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-enb/bin
 WORKDIR /usr/lib/x86_64-linux-gnu
-COPY --from=enb-build /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 .
-COPY --from=enb-build /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 .
-COPY --from=enb-build /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 .
-COPY --from=enb-build /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 .
-COPY --from=enb-build /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 .
-COPY --from=enb-build /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 .
-COPY --from=enb-build /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1 .
+COPY --from=enb-build \
+     /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 \
+     /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 \
+     /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 \
+     /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 \
+     /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 \
+     /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 \
+     /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1 \
+     ./
 
-RUN ldconfig
+RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
+    /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
+    /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
+    ldconfig
 
 # Copy the relevant configuration files for eNB
 WORKDIR /opt/oai-enb/etc
diff --git a/docker/Dockerfile.gNB.rhel8.2 b/docker/Dockerfile.gNB.rhel8.2
index b34a9d242d0..41fdd2f158f 100644
--- a/docker/Dockerfile.gNB.rhel8.2
+++ b/docker/Dockerfile.gNB.rhel8.2
@@ -37,7 +37,8 @@ RUN /bin/sh oaienv && \
     mkdir -p log && \
     ./build_oai --gNB --ninja -w USRP --verbose-ci
 
-RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/gnb_parameters.yaml
+RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/gnb_parameters.yaml && \
+    cp /oai-ran/docker/scripts/gnb_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
 
 #start from scratch for target executable
 FROM registry.access.redhat.com/ubi8/ubi:latest as oai-gnb
@@ -64,46 +65,47 @@ RUN yum repolist --disablerepo=* && \
     echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
 
 WORKDIR /opt/oai-gnb/bin
-COPY --from=gnb-build /oai-ran/targets/bin/nr-softmodem.Rel15 .
-COPY --from=gnb-build /oai-ran/docker/scripts/gnb_entrypoint.sh entrypoint.sh
+COPY --from=gnb-build \
+    /oai-ran/targets/bin/nr-softmodem.Rel15 \
+    /oai-ran/docker/scripts/entrypoint.sh \
+    ./
 
 WORKDIR /usr/local/lib/
-COPY --from=gnb-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
-COPY --from=gnb-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
-COPY --from=gnb-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
-COPY --from=gnb-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
-COPY --from=gnb-build /oai-ran/targets/bin/libcoding.so .
-COPY --from=gnb-build /oai-ran/targets/bin/libparams_libconfig.so .
-COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
-COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libldpc.so .
-COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libldpc_optim.so .
-COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so .
-COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libldpc_orig.so .
-
-RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so"
-RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so"
-RUN /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so"
-COPY --from=gnb-build /usr/local/lib/libprotobuf-c.so.1 .
-
-COPY --from=gnb-build /lib64/libconfig.so.9 /lib64
-COPY --from=gnb-build /lib64/libforms.so.2 /lib64
-COPY --from=gnb-build /lib64/libblas.so.3 /lib64
-COPY --from=gnb-build /lib64/liblapack.so.3 /lib64
-COPY --from=gnb-build /lib64/liblapacke.so.3 /lib64
+COPY --from=gnb-build \
+    /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
+    /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
+    /oai-ran/targets/bin/librfsimulator.so.Rel15 \
+    /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
+    /oai-ran/targets/bin/libcoding.so \
+    /oai-ran/targets/bin/libparams_libconfig.so \
+    /oai-ran/cmake_targets/ran_build/build/libdfts.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc_optim.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc_orig.so \
+    /usr/local/lib/libprotobuf-c.so.1 \
+    ./
+
+COPY --from=gnb-build \
+    /lib64/libconfig.so.9 \
+    /lib64/libforms.so.2 \
+    /lib64/libblas.so.3 \
+    /lib64/liblapack.so.3 \
+    /lib64/liblapacke.so.3 \
+    /lib64/libboost_chrono.so.1.66.0 \
+    /lib64/libboost_date_time.so.1.66.0 \
+    /lib64/libboost_filesystem.so.1.66.0 \
+    /lib64/libboost_program_options.so.1.66.0 \
+    /lib64/libboost_serialization.so.1.66.0 \
+    /lib64/libboost_thread.so.1.66.0 \
+    /lib64/libboost_system.so.1.66.0 \
+    /lib64/libboost_unit_test_framework.so.1.66.0 \
+    /lib64/libboost_atomic.so.1.66.0 \
+    /lib64/libboost_timer.so.1.66.0 \
+    /lib64/libboost_regex.so.1.66.0 \
+    /lib64/
 
 # Now we are copying from builder-image the UHD files.
-COPY --from=gnb-build /lib64/libboost_chrono.so.1.66.0 /lib64
-COPY --from=gnb-build /lib64/libboost_date_time.so.1.66.0 /lib64
-COPY --from=gnb-build /lib64/libboost_filesystem.so.1.66.0 /lib64
-COPY --from=gnb-build /lib64/libboost_program_options.so.1.66.0 /lib64
-COPY --from=gnb-build /lib64/libboost_serialization.so.1.66.0 /lib64
-COPY --from=gnb-build /lib64/libboost_thread.so.1.66.0 /lib64
-COPY --from=gnb-build /lib64/libboost_system.so.1.66.0 /lib64
-COPY --from=gnb-build /lib64/libboost_unit_test_framework.so.1.66.0 /lib64
-COPY --from=gnb-build /lib64/libboost_atomic.so.1.66.0 /lib64
-COPY --from=gnb-build /lib64/libboost_timer.so.1.66.0 /lib64
-COPY --from=gnb-build /lib64/libboost_regex.so.1.66.0 /lib64
-
 COPY --from=gnb-build /usr/local/bin/uhd_find_devices /usr/local/bin
 COPY --from=gnb-build /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
 COPY --from=gnb-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-gnb/bin
@@ -111,7 +113,10 @@ COPY --from=gnb-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/o
 WORKDIR /usr/local/share/uhd/rfnoc
 COPY --from=gnb-build /usr/local/share/uhd/rfnoc/ .
 
-RUN ldconfig
+RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
+    /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
+    /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
+    ldconfig
 
 # Copy the relevant configuration files for gNB
 WORKDIR /opt/oai-gnb/etc
diff --git a/docker/Dockerfile.gNB.ubuntu18 b/docker/Dockerfile.gNB.ubuntu18
index 030ce80ede6..70eea9fe925 100644
--- a/docker/Dockerfile.gNB.ubuntu18
+++ b/docker/Dockerfile.gNB.ubuntu18
@@ -37,7 +37,8 @@ RUN /bin/sh oaienv && \
     mkdir -p log && \
     ./build_oai --gNB --ninja -w USRP --verbose-ci
 
-RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/gnb_parameters.yaml
+RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/gnb_parameters.yaml && \
+    cp /oai-ran/docker/scripts/gnb_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
 
 #start from scratch for target executable
 FROM ubuntu:bionic as oai-gnb
@@ -68,41 +69,46 @@ RUN apt-get update && \
     rm -rf /var/lib/apt/lists/*
 
 WORKDIR /opt/oai-gnb/bin
-COPY --from=gnb-build /oai-ran/targets/bin/nr-softmodem.Rel15 .
-COPY --from=gnb-build /oai-ran/docker/scripts/gnb_entrypoint.sh entrypoint.sh
+COPY --from=gnb-build \
+    /oai-ran/targets/bin/nr-softmodem.Rel15 \
+    /oai-ran/docker/scripts/entrypoint.sh \
+    ./
 
 WORKDIR /usr/local/lib/
-COPY --from=gnb-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
-COPY --from=gnb-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
-COPY --from=gnb-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
-COPY --from=gnb-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
-COPY --from=gnb-build /oai-ran/targets/bin/libcoding.so .
-COPY --from=gnb-build /oai-ran/targets/bin/libparams_libconfig.so .
-COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
-COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libldpc.so .
-COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libldpc_optim.so .
-COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so .
-COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libldpc_orig.so .
-
-RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so"
-RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so"
-RUN /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so"
-COPY --from=gnb-build /usr/local/lib/libprotobuf-c.so.1 .
+COPY --from=gnb-build \
+    /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
+    /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
+    /oai-ran/targets/bin/librfsimulator.so.Rel15 \
+    /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
+    /oai-ran/targets/bin/libcoding.so \
+    /oai-ran/targets/bin/libparams_libconfig.so \
+    /oai-ran/cmake_targets/ran_build/build/libdfts.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc_optim.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc_orig.so \
+    /usr/local/lib/libprotobuf-c.so.1 \
+    ./
 
 # Now we are copying from builder-image the UHD files.
 COPY --from=gnb-build /usr/local/bin/uhd_find_devices /usr/local/bin
 COPY --from=gnb-build /usr/local/lib/libuhd.so.3.15.0 /usr/local/lib
 COPY --from=gnb-build /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-gnb/bin
 WORKDIR /usr/lib/x86_64-linux-gnu
-COPY --from=gnb-build /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 .
-COPY --from=gnb-build /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 .
-COPY --from=gnb-build /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 .
-COPY --from=gnb-build /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 .
-COPY --from=gnb-build /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 .
-COPY --from=gnb-build /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 .
-COPY --from=gnb-build /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1 .
+COPY --from=gnb-build \
+    /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1 \
+    ./
 
-RUN ldconfig
+RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
+    /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
+    /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
+    ldconfig
 
 # Copy the relevant configuration files for gNB
 WORKDIR /opt/oai-gnb/etc
diff --git a/docker/Dockerfile.lteRU.rhel8.2 b/docker/Dockerfile.lteRU.rhel8.2
index 7e2a054a129..ddb2ac11679 100644
--- a/docker/Dockerfile.lteRU.rhel8.2
+++ b/docker/Dockerfile.lteRU.rhel8.2
@@ -37,7 +37,8 @@ RUN /bin/sh oaienv && \
     mkdir -p log && \
     ./build_oai --RU --ninja -w USRP --verbose-ci
 
-RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml
+RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml && \
+    cp /oai-ran/docker/scripts/lte_ru_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
 
 #start from scratch for target executable
 FROM registry.access.redhat.com/ubi8/ubi:latest as oai-lte-ru
@@ -59,35 +60,40 @@ RUN yum update -y && \
     echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
 
 WORKDIR /opt/oai-lte-ru/bin
-COPY --from=ru-build /oai-ran/targets/bin/oairu.Rel15 .
-COPY --from=ru-build /oai-ran/docker/scripts/lte_ru_entrypoint.sh entrypoint.sh
+COPY --from=ru-build \
+    /oai-ran/targets/bin/oairu.Rel15 \
+    /oai-ran/docker/scripts/entrypoint.sh \
+    .
 
 WORKDIR /usr/local/lib/
-COPY --from=ru-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
-COPY --from=ru-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
-COPY --from=ru-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
-COPY --from=ru-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
-COPY --from=ru-build /oai-ran/targets/bin/libparams_libconfig.so .
-COPY --from=ru-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
-
-COPY --from=ru-build /lib64/libconfig.so.9 /lib64
-COPY --from=ru-build /lib64/libblas.so.3 /lib64
-COPY --from=ru-build /lib64/liblapack.so.3 /lib64
-COPY --from=ru-build /lib64/liblapacke.so.3 /lib64
+COPY --from=ru-build \
+    /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
+    /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
+    /oai-ran/targets/bin/librfsimulator.so.Rel15 \
+    /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
+    /oai-ran/targets/bin/libparams_libconfig.so \
+    /oai-ran/cmake_targets/ran_build/build/libdfts.so \
+    ./
+
+COPY --from=ru-build \
+    /lib64/libconfig.so.9 \
+    /lib64/libblas.so.3 \
+    /lib64/liblapack.so.3 \
+    /lib64/liblapacke.so.3 \
+    /lib64/libboost_chrono.so.1.66.0 \
+    /lib64/libboost_date_time.so.1.66.0 \
+    /lib64/libboost_filesystem.so.1.66.0 \
+    /lib64/libboost_program_options.so.1.66.0 \
+    /lib64/libboost_serialization.so.1.66.0 \
+    /lib64/libboost_thread.so.1.66.0 \
+    /lib64/libboost_system.so.1.66.0 \
+    /lib64/libboost_unit_test_framework.so.1.66.0 \
+    /lib64/libboost_atomic.so.1.66.0 \
+    /lib64/libboost_timer.so.1.66.0 \
+    /lib64/libboost_regex.so.1.66.0 \
+    /lib64/
 
 # Copying from the ran-build image the USRP needed packages
-COPY --from=ru-build /lib64/libboost_chrono.so.1.66.0 /lib64
-COPY --from=ru-build /lib64/libboost_date_time.so.1.66.0 /lib64
-COPY --from=ru-build /lib64/libboost_filesystem.so.1.66.0 /lib64
-COPY --from=ru-build /lib64/libboost_program_options.so.1.66.0 /lib64
-COPY --from=ru-build /lib64/libboost_serialization.so.1.66.0 /lib64
-COPY --from=ru-build /lib64/libboost_thread.so.1.66.0 /lib64
-COPY --from=ru-build /lib64/libboost_system.so.1.66.0 /lib64
-COPY --from=ru-build /lib64/libboost_unit_test_framework.so.1.66.0 /lib64
-COPY --from=ru-build /lib64/libboost_atomic.so.1.66.0 /lib64
-COPY --from=ru-build /lib64/libboost_timer.so.1.66.0 /lib64
-COPY --from=ru-build /lib64/libboost_regex.so.1.66.0 /lib64
-
 COPY --from=ru-build /usr/local/bin/uhd_find_devices /usr/local/bin
 COPY --from=ru-build /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
 COPY --from=ru-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ru/bin
diff --git a/docker/Dockerfile.lteRU.ubuntu18 b/docker/Dockerfile.lteRU.ubuntu18
index eafb8fa8af4..3978da63d69 100644
--- a/docker/Dockerfile.lteRU.ubuntu18
+++ b/docker/Dockerfile.lteRU.ubuntu18
@@ -37,7 +37,8 @@ RUN /bin/sh oaienv && \
     mkdir -p log && \
     ./build_oai --RU --ninja -w USRP --verbose-ci
 
-RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml
+RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml && \
+    cp /oai-ran/docker/scripts/lte_ru_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
 
 #start from scratch for target executable
 FROM ubuntu:bionic as oai-lte-ru
@@ -64,28 +65,35 @@ RUN apt-get update && \
     rm -rf /var/lib/apt/lists/*
 
 WORKDIR /opt/oai-lte-ru/bin
-COPY --from=ru-build /oai-ran/targets/bin/oairu.Rel15 .
-COPY --from=ru-build /oai-ran/docker/scripts/lte_ru_entrypoint.sh entrypoint.sh
+COPY --from=ru-build \
+    /oai-ran/targets/bin/oairu.Rel15 \
+    /oai-ran/docker/scripts/entrypoint.sh \
+    ./
 
 WORKDIR /usr/local/lib/
-COPY --from=ru-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
-COPY --from=ru-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
-COPY --from=ru-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
-COPY --from=ru-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
-COPY --from=ru-build /oai-ran/targets/bin/libparams_libconfig.so .
-COPY --from=ru-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
+COPY --from=ru-build \
+    /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
+    /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
+    /oai-ran/targets/bin/librfsimulator.so.Rel15 \
+    /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
+    /oai-ran/targets/bin/libparams_libconfig.so \
+    /oai-ran/cmake_targets/ran_build/build/libdfts.so \
+    ./
 
 # Now we are copying from builder-image the UHD files.
 COPY --from=ru-build /usr/local/bin/uhd_find_devices /usr/local/bin
 COPY --from=ru-build /usr/local/lib/libuhd.so.3.15.0 /usr/local/lib
 COPY --from=ru-build /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ru/bin
+
 WORKDIR /usr/lib/x86_64-linux-gnu
-COPY --from=ru-build /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 .
-COPY --from=ru-build /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 .
-COPY --from=ru-build /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 .
-COPY --from=ru-build /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 .
-COPY --from=ru-build /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 .
-COPY --from=ru-build /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 .
+COPY --from=ru-build \
+    /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 \
+    ./
 
 RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
     /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
diff --git a/docker/Dockerfile.lteUE.rhel8.2 b/docker/Dockerfile.lteUE.rhel8.2
index a6814be1361..dd5ed8ba2e6 100644
--- a/docker/Dockerfile.lteUE.rhel8.2
+++ b/docker/Dockerfile.lteUE.rhel8.2
@@ -38,7 +38,8 @@ RUN /bin/sh oaienv && \
     ./build_oai --UE --ninja -w USRP --verbose-ci
 
 RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_parameters.yaml && \
-    python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_sim_parameters.yaml
+    python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_sim_parameters.yaml && \
+    cp /oai-ran/docker/scripts/lte_ue_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
 
 #start from scratch for target executable
 FROM registry.access.redhat.com/ubi8/ubi:latest as oai-lte-ue
@@ -63,45 +64,46 @@ RUN yum update -y && \
     echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
 
 WORKDIR /opt/oai-lte-ue/bin
-COPY --from=lte-ue-build /oai-ran/targets/bin/lte-uesoftmodem.Rel15 .
-COPY --from=lte-ue-build /oai-ran/docker/scripts/lte_ue_entrypoint.sh entrypoint.sh
-COPY --from=lte-ue-build /oai-ran/targets/bin/conf2uedata .
-COPY --from=lte-ue-build /oai-ran/targets/bin/nvram .
-COPY --from=lte-ue-build /oai-ran/targets/bin/usim .
+COPY --from=lte-ue-build \
+    /oai-ran/targets/bin/lte-uesoftmodem.Rel15 \
+    /oai-ran/docker/scripts/entrypoint.sh \
+    /oai-ran/targets/bin/conf2uedata \
+    /oai-ran/targets/bin/nvram \
+    /oai-ran/targets/bin/usim \
+    ./
 
 WORKDIR /usr/local/lib/
-COPY --from=lte-ue-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
-COPY --from=lte-ue-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
-COPY --from=lte-ue-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
-COPY --from=lte-ue-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
-COPY --from=lte-ue-build /oai-ran/targets/bin/libcoding.so .
-COPY --from=lte-ue-build /oai-ran/targets/bin/libparams_libconfig.so .
-COPY --from=lte-ue-build /oai-ran/cmake_targets/ran_build/build/libSIMU.so .
-COPY --from=lte-ue-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
-RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so"
-RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so"
-RUN /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so"
-
-COPY --from=lte-ue-build /usr/local/lib/libprotobuf-c.so.1 .
-
-COPY --from=lte-ue-build /lib64/libconfig.so.9 /lib64
-COPY --from=lte-ue-build /lib64/libblas.so.3 /lib64
-COPY --from=lte-ue-build /lib64/liblapack.so.3 /lib64
-COPY --from=lte-ue-build /lib64/liblapacke.so.3 /lib64
+COPY --from=lte-ue-build \
+    /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
+    /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
+    /oai-ran/targets/bin/librfsimulator.so.Rel15 \
+    /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
+    /oai-ran/targets/bin/libcoding.so \
+    /oai-ran/targets/bin/libparams_libconfig.so \
+    /oai-ran/cmake_targets/ran_build/build/libSIMU.so \
+    /oai-ran/cmake_targets/ran_build/build/libdfts.so \
+    /usr/local/lib/libprotobuf-c.so.1 \
+    ./
+
+COPY --from=lte-ue-build \
+    /lib64/libconfig.so.9 \
+    /lib64/libblas.so.3 \
+    /lib64/liblapack.so.3 \
+    /lib64/liblapacke.so.3 \
+    /lib64/libboost_chrono.so.1.66.0 \
+    /lib64/libboost_date_time.so.1.66.0 \
+    /lib64/libboost_filesystem.so.1.66.0 \
+    /lib64/libboost_program_options.so.1.66.0 \
+    /lib64/libboost_serialization.so.1.66.0 \
+    /lib64/libboost_thread.so.1.66.0 \
+    /lib64/libboost_system.so.1.66.0 \
+    /lib64/libboost_unit_test_framework.so.1.66.0 \
+    /lib64/libboost_atomic.so.1.66.0 \
+    /lib64/libboost_timer.so.1.66.0 \
+    /lib64/libboost_regex.so.1.66.0 \
+    /lib64/
 
 # Now we are copying from builder-image the UHD files.
-COPY --from=lte-ue-build /lib64/libboost_chrono.so.1.66.0 /lib64
-COPY --from=lte-ue-build /lib64/libboost_date_time.so.1.66.0 /lib64
-COPY --from=lte-ue-build /lib64/libboost_filesystem.so.1.66.0 /lib64
-COPY --from=lte-ue-build /lib64/libboost_program_options.so.1.66.0 /lib64
-COPY --from=lte-ue-build /lib64/libboost_serialization.so.1.66.0 /lib64
-COPY --from=lte-ue-build /lib64/libboost_thread.so.1.66.0 /lib64
-COPY --from=lte-ue-build /lib64/libboost_system.so.1.66.0 /lib64
-COPY --from=lte-ue-build /lib64/libboost_unit_test_framework.so.1.66.0 /lib64
-COPY --from=lte-ue-build /lib64/libboost_atomic.so.1.66.0 /lib64
-COPY --from=lte-ue-build /lib64/libboost_timer.so.1.66.0 /lib64
-COPY --from=lte-ue-build /lib64/libboost_regex.so.1.66.0 /lib64
-
 COPY --from=lte-ue-build /usr/local/bin/uhd_find_devices /usr/local/bin
 COPY --from=lte-ue-build /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
 COPY --from=lte-ue-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ue/bin
@@ -109,7 +111,10 @@ COPY --from=lte-ue-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /op
 WORKDIR /usr/local/share/uhd/rfnoc
 COPY --from=lte-ue-build /usr/local/share/uhd/rfnoc/ .
 
-RUN ldconfig
+RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
+    /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
+    /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
+    ldconfig
 
 # Copy the relevant configuration files for UE
 WORKDIR /opt/oai-lte-ue/etc
diff --git a/docker/Dockerfile.lteUE.ubuntu18 b/docker/Dockerfile.lteUE.ubuntu18
index 31a3ae41ae4..5c15456b0ae 100644
--- a/docker/Dockerfile.lteUE.ubuntu18
+++ b/docker/Dockerfile.lteUE.ubuntu18
@@ -38,7 +38,8 @@ RUN /bin/sh oaienv && \
     ./build_oai --UE --ninja -w USRP --verbose-ci
 
 RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_parameters.yaml && \
-    python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_sim_parameters.yaml
+    python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_sim_parameters.yaml && \
+    cp /oai-ran/docker/scripts/lte_ue_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
 
 #start from scratch for target executable
 FROM ubuntu:bionic as oai-lte-ue
@@ -49,6 +50,7 @@ RUN apt-get update && \
     DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
     DEBIAN_FRONTEND=noninteractive apt-get install --yes \
         software-properties-common \
+        tzdata \
         procps \
         libsctp1 \
         libnettle6 \
@@ -69,41 +71,47 @@ RUN apt-get update && \
     rm -rf /var/lib/apt/lists/*
 
 WORKDIR /opt/oai-lte-ue/bin
-COPY --from=lte-ue-build /oai-ran/targets/bin/lte-uesoftmodem.Rel15 .
-COPY --from=lte-ue-build /oai-ran/docker/scripts/lte_ue_entrypoint.sh entrypoint.sh
-COPY --from=lte-ue-build /oai-ran/targets/bin/conf2uedata .
-COPY --from=lte-ue-build /oai-ran/targets/bin/nvram .
-COPY --from=lte-ue-build /oai-ran/targets/bin/usim .
+COPY --from=lte-ue-build \
+    /oai-ran/targets/bin/lte-uesoftmodem.Rel15 \
+    /oai-ran/docker/scripts/entrypoint.sh \
+    /oai-ran/targets/bin/conf2uedata \
+    /oai-ran/targets/bin/nvram \
+    /oai-ran/targets/bin/usim \
+    ./
 
 WORKDIR /usr/local/lib/
-COPY --from=lte-ue-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
-COPY --from=lte-ue-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
-COPY --from=lte-ue-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
-COPY --from=lte-ue-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
-COPY --from=lte-ue-build /oai-ran/targets/bin/libcoding.so .
-COPY --from=lte-ue-build /oai-ran/targets/bin/libparams_libconfig.so .
-COPY --from=lte-ue-build /oai-ran/cmake_targets/ran_build/build/libSIMU.so .
-COPY --from=lte-ue-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
-RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so"
-RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so"
-RUN /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so"
-
-COPY --from=lte-ue-build /usr/local/lib/libprotobuf-c.so.1 .
+COPY --from=lte-ue-build \
+    /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
+    /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
+    /oai-ran/targets/bin/librfsimulator.so.Rel15 \
+    /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
+    /oai-ran/targets/bin/libcoding.so \
+    /oai-ran/targets/bin/libparams_libconfig.so \
+    /oai-ran/cmake_targets/ran_build/build/libSIMU.so \
+    /oai-ran/cmake_targets/ran_build/build/libdfts.so \
+    /usr/local/lib/libprotobuf-c.so.1 \
+    ./
 
 # Now we are copying from builder-image the UHD files.
 COPY --from=lte-ue-build /usr/local/bin/uhd_find_devices /usr/local/bin
 COPY --from=lte-ue-build /usr/local/lib/libuhd.so.3.15.0 /usr/local/lib
 COPY --from=lte-ue-build /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ue/bin
+
 WORKDIR /usr/lib/x86_64-linux-gnu
-COPY --from=lte-ue-build /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 .
-COPY --from=lte-ue-build /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 .
-COPY --from=lte-ue-build /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 .
-COPY --from=lte-ue-build /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 .
-COPY --from=lte-ue-build /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 .
-COPY --from=lte-ue-build /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 .
-COPY --from=lte-ue-build /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1 .
+COPY --from=lte-ue-build \
+    /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1 \
+    ./
 
-RUN ldconfig
+RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
+    /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
+    /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
+    ldconfig
 
 # Copy the relevant configuration files for UE
 WORKDIR /opt/oai-lte-ue/etc
diff --git a/docker/Dockerfile.nrUE.rhel8.2 b/docker/Dockerfile.nrUE.rhel8.2
index ec74d119401..e7b41c293b4 100644
--- a/docker/Dockerfile.nrUE.rhel8.2
+++ b/docker/Dockerfile.nrUE.rhel8.2
@@ -35,7 +35,8 @@ COPY . .
 RUN /bin/sh oaienv && \ 
     cd cmake_targets && \
     mkdir -p log && \
-    ./build_oai --nrUE --ninja -w USRP --verbose-ci
+    ./build_oai --nrUE --ninja -w USRP --verbose-ci && \
+    cp /oai-ran/docker/scripts/nr_ue_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
 
 #start from scratch for target executable
 FROM registry.access.redhat.com/ubi8/ubi:latest as oai-nr-ue
@@ -62,49 +63,50 @@ RUN yum update -y && \
     echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
 
 WORKDIR /opt/oai-nr-ue/bin
-COPY --from=nr-ue-build /oai-ran/targets/bin/nr-uesoftmodem.Rel15 .
-COPY --from=nr-ue-build /oai-ran/docker/scripts/nr_ue_entrypoint.sh entrypoint.sh
+COPY --from=nr-ue-build \
+    /oai-ran/targets/bin/nr-uesoftmodem.Rel15 \
+    /oai-ran/docker/scripts/entrypoint.sh \
+    ./
 
 WORKDIR /opt/oai-nr-ue/etc
 COPY --from=nr-ue-build /oai-ran/ci-scripts/conf_files/nr-ue-sim.conf .
 
 WORKDIR /usr/local/lib/
-COPY --from=nr-ue-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
-COPY --from=nr-ue-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
-COPY --from=nr-ue-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
-COPY --from=nr-ue-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
-COPY --from=nr-ue-build /oai-ran/targets/bin/libcoding.so .
-COPY --from=nr-ue-build /oai-ran/targets/bin/libparams_libconfig.so .
-COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
-COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libldpc.so .
-COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libldpc_optim.so .
-COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so .
-COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libldpc_orig.so .
-RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so"
-RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so"
-RUN /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so"
-
-COPY --from=nr-ue-build /usr/local/lib/libprotobuf-c.so.1 .
-
-COPY --from=nr-ue-build /lib64/libconfig.so.9 /lib64
-COPY --from=nr-ue-build /lib64/libblas.so.3 /lib64
-COPY --from=nr-ue-build /lib64/liblapack.so.3 /lib64
-COPY --from=nr-ue-build /lib64/liblapacke.so.3 /lib64
-COPY --from=nr-ue-build /lib64/libforms.so.2 /lib64
+COPY --from=nr-ue-build \
+    /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
+    /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
+    /oai-ran/targets/bin/librfsimulator.so.Rel15 \
+    /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
+    /oai-ran/targets/bin/libcoding.so \
+    /oai-ran/targets/bin/libparams_libconfig.so \
+    /oai-ran/cmake_targets/ran_build/build/libdfts.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc_optim.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc_orig.so \
+    /usr/local/lib/libprotobuf-c.so.1 \
+    ./
+
+COPY --from=nr-ue-build \
+    /lib64/libconfig.so.9 \
+    /lib64/libblas.so.3 \
+    /lib64/liblapack.so.3 \
+    /lib64/liblapacke.so.3 \
+    /lib64/libforms.so.2 \
+    /lib64/libboost_chrono.so.1.66.0 \
+    /lib64/libboost_date_time.so.1.66.0 \
+    /lib64/libboost_filesystem.so.1.66.0 \
+    /lib64/libboost_program_options.so.1.66.0 \
+    /lib64/libboost_serialization.so.1.66.0 \
+    /lib64/libboost_thread.so.1.66.0 \
+    /lib64/libboost_system.so.1.66.0 \
+    /lib64/libboost_unit_test_framework.so.1.66.0 \
+    /lib64/libboost_atomic.so.1.66.0 \
+    /lib64/libboost_timer.so.1.66.0 \
+    /lib64/libboost_regex.so.1.66.0 \
+    /lib64/
 
 # Now we are copying from builder-image the UHD files.
-COPY --from=nr-ue-build /lib64/libboost_chrono.so.1.66.0 /lib64
-COPY --from=nr-ue-build /lib64/libboost_date_time.so.1.66.0 /lib64
-COPY --from=nr-ue-build /lib64/libboost_filesystem.so.1.66.0 /lib64
-COPY --from=nr-ue-build /lib64/libboost_program_options.so.1.66.0 /lib64
-COPY --from=nr-ue-build /lib64/libboost_serialization.so.1.66.0 /lib64
-COPY --from=nr-ue-build /lib64/libboost_thread.so.1.66.0 /lib64
-COPY --from=nr-ue-build /lib64/libboost_system.so.1.66.0 /lib64
-COPY --from=nr-ue-build /lib64/libboost_unit_test_framework.so.1.66.0 /lib64
-COPY --from=nr-ue-build /lib64/libboost_atomic.so.1.66.0 /lib64
-COPY --from=nr-ue-build /lib64/libboost_timer.so.1.66.0 /lib64
-COPY --from=nr-ue-build /lib64/libboost_regex.so.1.66.0 /lib64
-
 COPY --from=nr-ue-build /usr/local/bin/uhd_find_devices /usr/local/bin
 COPY --from=nr-ue-build /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
 COPY --from=nr-ue-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-nr-ue/bin
@@ -112,8 +114,10 @@ COPY --from=nr-ue-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt
 WORKDIR /usr/local/share/uhd/rfnoc
 COPY --from=nr-ue-build /usr/local/share/uhd/rfnoc/ .
 
-
-RUN ldconfig
+RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
+    /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
+    /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
+    ldconfig
 
 # Copy the relevant configuration files for eNB
 WORKDIR /opt/oai-nr-ue/etc
diff --git a/docker/Dockerfile.nrUE.ubuntu18 b/docker/Dockerfile.nrUE.ubuntu18
index 38d437940ca..03b0f94c69c 100644
--- a/docker/Dockerfile.nrUE.ubuntu18
+++ b/docker/Dockerfile.nrUE.ubuntu18
@@ -35,7 +35,8 @@ COPY . .
 RUN /bin/sh oaienv && \ 
     cd cmake_targets && \
     mkdir -p log && \
-    ./build_oai --nrUE --ninja -w USRP --verbose-ci
+    ./build_oai --nrUE --ninja -w USRP --verbose-ci && \
+    cp /oai-ran/docker/scripts/nr_ue_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
 
 #start from scratch for target executable
 FROM ubuntu:bionic as oai-nr-ue
@@ -67,44 +68,50 @@ RUN apt-get update && \
     rm -rf /var/lib/apt/lists/*
 
 WORKDIR /opt/oai-nr-ue/bin
-COPY --from=nr-ue-build /oai-ran/targets/bin/nr-uesoftmodem.Rel15 .
-COPY --from=nr-ue-build /oai-ran/docker/scripts/nr_ue_entrypoint.sh entrypoint.sh
+COPY --from=nr-ue-build \
+    /oai-ran/targets/bin/nr-uesoftmodem.Rel15 \
+    /oai-ran/docker/scripts/entrypoint.sh \
+    ./
 
 WORKDIR /opt/oai-nr-ue/etc
 COPY --from=nr-ue-build /oai-ran/ci-scripts/conf_files/nr-ue-sim.conf .
 
 WORKDIR /usr/local/lib/
-COPY --from=nr-ue-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
-COPY --from=nr-ue-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
-COPY --from=nr-ue-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
-COPY --from=nr-ue-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
-COPY --from=nr-ue-build /oai-ran/targets/bin/libcoding.so .
-COPY --from=nr-ue-build /oai-ran/targets/bin/libparams_libconfig.so .
-COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
-COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libldpc.so .
-COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libldpc_optim.so .
-COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so .
-COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libldpc_orig.so .
-RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so"
-RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so"
-RUN /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so"
-
-COPY --from=nr-ue-build /usr/local/lib/libprotobuf-c.so.1 .
+COPY --from=nr-ue-build \
+    /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
+    /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
+    /oai-ran/targets/bin/librfsimulator.so.Rel15 \
+    /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
+    /oai-ran/targets/bin/libcoding.so \
+    /oai-ran/targets/bin/libparams_libconfig.so \
+    /oai-ran/cmake_targets/ran_build/build/libdfts.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc_optim.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc_orig.so \
+    /usr/local/lib/libprotobuf-c.so.1 \
+    ./
 
 # Now we are copying from builder-image the UHD files.
 COPY --from=nr-ue-build /usr/local/bin/uhd_find_devices /usr/local/bin
 COPY --from=nr-ue-build /usr/local/lib/libuhd.so.3.15.0 /usr/local/lib
 COPY --from=nr-ue-build /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-nr-ue/bin
+
 WORKDIR /usr/lib/x86_64-linux-gnu
-COPY --from=nr-ue-build /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 .
-COPY --from=nr-ue-build /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 .
-COPY --from=nr-ue-build /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 .
-COPY --from=nr-ue-build /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 .
-COPY --from=nr-ue-build /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 .
-COPY --from=nr-ue-build /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 .
-COPY --from=nr-ue-build /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1 .
+COPY --from=nr-ue-build \
+    /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 \
+    /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1 \
+    ./
 
-RUN ldconfig
+RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
+    /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
+    /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
+    ldconfig
 
 WORKDIR /opt/oai-nr-ue
 CMD ["/opt/oai-nr-ue/bin/nr-uesoftmodem.Rel15", "-O", "/opt/oai-nr-ue/etc/nr-ue-sim.conf"]
diff --git a/docker/Dockerfile.phySim.rhel8.2 b/docker/Dockerfile.phySim.rhel8.2
index 2333098bd71..f35856ac7a6 100644
--- a/docker/Dockerfile.phySim.rhel8.2
+++ b/docker/Dockerfile.phySim.rhel8.2
@@ -37,7 +37,6 @@ RUN /bin/sh oaienv && \
     mkdir -p log && \
     ./build_oai --phy_simulators --ninja --verbose-ci
 
-
 #start from scratch for target executable
 FROM registry.access.redhat.com/ubi8/ubi:latest as oai-physim
 
@@ -45,6 +44,7 @@ RUN yum update -y && \
     yum install -y --enablerepo="ubi-8-codeready-builder" \
         lksctp-tools \
         nettle \
+        tzdata \
         atlas \
         hostname \
         sudo \
@@ -58,66 +58,62 @@ RUN yum update -y && \
     echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
 
 WORKDIR /opt/oai-physim/targets/bin
-COPY --from=phy-sim-build /oai-ran/targets/bin/dlsim.Rel15 .
-COPY --from=phy-sim-build /oai-ran/targets/bin/nr_dlsim.Rel15 .
-COPY --from=phy-sim-build /oai-ran/targets/bin/nr_prachsim.Rel15 .
-COPY --from=phy-sim-build /oai-ran/targets/bin/nr_ulschsim.Rel15 .
-COPY --from=phy-sim-build /oai-ran/targets/bin/polartest.Rel15 .
-COPY --from=phy-sim-build /oai-ran/targets/bin/ulsim.Rel15 .
-COPY --from=phy-sim-build /oai-ran/targets/bin/ldpctest.Rel15 .
-COPY --from=phy-sim-build /oai-ran/targets/bin/nr_dlschsim.Rel15 .
-COPY --from=phy-sim-build /oai-ran/targets/bin/nr_pbchsim.Rel15 .
-COPY --from=phy-sim-build /oai-ran/targets/bin/nr_pucchsim.Rel15 .
-COPY --from=phy-sim-build /oai-ran/targets/bin/nr_ulsim.Rel15 .
-COPY --from=phy-sim-build /oai-ran/targets/bin/smallblocktest.Rel15 .
+COPY --from=phy-sim-build \
+    /oai-ran/targets/bin/dlsim.Rel15 \
+    /oai-ran/targets/bin/nr_dlsim.Rel15 \
+    /oai-ran/targets/bin/nr_prachsim.Rel15 \
+    /oai-ran/targets/bin/nr_ulschsim.Rel15 \
+    /oai-ran/targets/bin/polartest.Rel15 \
+    /oai-ran/targets/bin/ulsim.Rel15 \
+    /oai-ran/targets/bin/ldpctest.Rel15 \
+    /oai-ran/targets/bin/nr_dlschsim.Rel15 \
+    /oai-ran/targets/bin/nr_pbchsim.Rel15 \
+    /oai-ran/targets/bin/nr_pucchsim.Rel15 \
+    /oai-ran/targets/bin/nr_ulsim.Rel15 \
+    /oai-ran/targets/bin/smallblocktest.Rel15 \
+    ./
 
 WORKDIR /usr/local/lib/
-COPY --from=phy-sim-build /oai-ran/targets/bin/libcoding.so .
-COPY --from=phy-sim-build /lib64/liblapacke.so.3 .
-COPY --from=phy-sim-build /lib64/libX11.so.6 .
-COPY --from=phy-sim-build /lib64/libXpm.so.4 .
-COPY --from=phy-sim-build /lib64/libxcb.so.1 .
-COPY --from=phy-sim-build /lib64/libXau.so.6 .
-COPY --from=phy-sim-build /lib64/libforms.so.2 .
-COPY --from=phy-sim-build /lib64/libblas.so.3 .
-COPY --from=phy-sim-build /lib64/liblapack.so.3 .
-COPY --from=phy-sim-build /lib64/libexslt.so.0 .
-COPY --from=phy-sim-build /lib64/libxslt.so.1 .
-COPY --from=phy-sim-build /oai-ran/cmake_targets/phy_simulators/build/libdfts.so .
-COPY --from=phy-sim-build /oai-ran/cmake_targets/phy_simulators/build/libSIMU.so .
-COPY --from=phy-sim-build /oai-ran/cmake_targets/phy_simulators/build/libldpc.so .
-COPY --from=phy-sim-build /oai-ran/cmake_targets/phy_simulators/build/libldpc_orig.so .
+COPY --from=phy-sim-build \
+    /oai-ran/targets/bin/libcoding.so \
+    /lib64/liblapacke.so.3 \
+    /lib64/libX11.so.6 \
+    /lib64/libXpm.so.4 \
+    /lib64/libxcb.so.1 \
+    /lib64/libXau.so.6 \
+    /lib64/libforms.so.2 \
+    /lib64/libblas.so.3 \
+    /lib64/liblapack.so.3 \
+    /lib64/libexslt.so.0 \
+    /lib64/libxslt.so.1 \
+    /oai-ran/cmake_targets/phy_simulators/build/libdfts.so \
+    /oai-ran/cmake_targets/phy_simulators/build/libSIMU.so \
+    /oai-ran/cmake_targets/phy_simulators/build/libldpc.so \
+    /oai-ran/cmake_targets/phy_simulators/build/libldpc_orig.so \
+    ./
 
 RUN ldconfig
 
-#debug
-#RUN ldd /opt/oai-physim/targets/bin/dlsim.Rel15
-#RUN ldd /opt/oai-physim/targets/bin/nr_dlsim.Rel15
-#RUN ldd /opt/oai-physim/targets/bin/nr_prachsim.Rel15
-#RUN ldd /opt/oai-physim/targets/bin/nr_ulschsim.Rel15
-#RUN ldd /opt/oai-physim/targets/bin/polartest.Rel15
-#RUN ldd /opt/oai-physim/targets/bin/ulsim.Rel15
-#RUN ldd /opt/oai-physim/targets/bin/ldpctest.Rel15
-#RUN ldd /opt/oai-physim/targets/bin/nr_dlschsim.Rel15
-#RUN ldd /opt/oai-physim/targets/bin/nr_pbchsim.Rel15
-#RUN ldd /opt/oai-physim/targets/bin/nr_pucchsim.Rel15
-#RUN ldd /opt/oai-physim/targets/bin/nr_ulsim.Rel15
-#RUN ldd /opt/oai-physim/targets/bin/smallblocktest.Rel15
-
 # Copy some executables
 WORKDIR /usr/bin/
 
-COPY --from=phy-sim-build /usr/bin/killall .
-COPY --from=phy-sim-build /usr/bin/xmlstarlet .
-COPY --from=phy-sim-build /usr/bin/svn .
+COPY --from=phy-sim-build \
+    /usr/bin/killall \
+    /usr/bin/xmlstarlet \
+    /usr/bin/svn \
+    ./
 
 # Copy the relevant configuration files for phySim
 WORKDIR /opt/oai-physim/
 
-COPY --from=phy-sim-build /oai-ran/cmake_targets/autotests/run_exec_autotests.bash /opt/oai-physim/cmake_targets/autotests/
-COPY --from=phy-sim-build /oai-ran/cmake_targets/autotests/test_case_list.xml /opt/oai-physim/cmake_targets/autotests/
-COPY --from=phy-sim-build /oai-ran/cmake_targets/autotests/tools/free_mem.bash /opt/oai-physim/cmake_targets/autotests/tools/
-COPY --from=phy-sim-build /oai-ran/cmake_targets/tools/build_helper /opt/oai-physim/cmake_targets/tools/
-COPY --from=phy-sim-build /oai-ran/cmake_targets/tools/test_helper /opt/oai-physim/cmake_targets/tools/
+COPY --from=phy-sim-build \
+    /oai-ran/cmake_targets/autotests/run_exec_autotests.bash \
+    /oai-ran/cmake_targets/autotests/test_case_list.xml \
+    /opt/oai-physim/cmake_targets/autotests/
+COPY --from=phy-sim-build \
+    /oai-ran/cmake_targets/autotests/tools/free_mem.bash \
+    /oai-ran/cmake_targets/tools/build_helper \
+    /oai-ran/cmake_targets/tools/test_helper \
+    /opt/oai-physim/cmake_targets/tools/
 
 #CMD ["sleep", "infinity"]
diff --git a/docker/Dockerfile.ran.rhel8.2 b/docker/Dockerfile.ran.rhel8.2
index 4d15220ca8f..0941bd68eaf 100644
--- a/docker/Dockerfile.ran.rhel8.2
+++ b/docker/Dockerfile.ran.rhel8.2
@@ -66,6 +66,5 @@ COPY . .
 RUN /bin/sh oaienv && \ 
     cd cmake_targets && \
     mkdir -p log && \
-    ./build_oai -I -w USRP
-
-RUN rm /etc/pki/entitlement/*pem
+    ./build_oai -I -w USRP && \
+    rm /etc/pki/entitlement/*pem
diff --git a/docker/scripts/enb_entrypoint.sh b/docker/scripts/enb_entrypoint.sh
index c71a2cf12f5..06e94b1e7a9 100755
--- a/docker/scripts/enb_entrypoint.sh
+++ b/docker/scripts/enb_entrypoint.sh
@@ -18,11 +18,19 @@ if [[ -v USE_FDD_IF4P5_RCC ]]; then cp $PREFIX/etc/rcc.if4p5.fdd.conf $PREFIX/et
 if [[ -v USE_TDD_IF4P5_RCC ]]; then cp $PREFIX/etc/rcc.if4p5.tdd.conf $PREFIX/etc/enb.conf; fi
 if [[ -v USE_FDD_RRU ]]; then cp $PREFIX/etc/rru.fdd.conf $PREFIX/etc/enb.conf; fi
 if [[ -v USE_TDD_RRU ]]; then cp $PREFIX/etc/rru.tdd.conf $PREFIX/etc/enb.conf; fi
+# Sometimes, the templates are not enough. We mount a conf file on $PREFIX/etc. It can be a template itself.
+if [[ -v USE_VOLUMED_CONF ]]; then cp $PREFIX/etc/mounted.conf $PREFIX/etc/enb.conf; fi
 
 # Only this template will be manipulated
 CONFIG_FILES=`ls $PREFIX/etc/enb.conf || true`
 
 for c in ${CONFIG_FILES}; do
+    # Sometimes templates have no pattern to be replaced.
+    if ! grep -oP '@[a-zA-Z0-9_]+@' ${c}; then
+        echo "Configuration is already set"
+        break
+    fi
+
     # grep variable names (format: ${VAR}) from template to be rendered
     VARS=$(grep -oP '@[a-zA-Z0-9_]+@' ${c} | sort | uniq | xargs)
 
diff --git a/docker/scripts/gnb_entrypoint.sh b/docker/scripts/gnb_entrypoint.sh
index d2bdc636c95..2fe743920ea 100755
--- a/docker/scripts/gnb_entrypoint.sh
+++ b/docker/scripts/gnb_entrypoint.sh
@@ -9,11 +9,19 @@ THREAD_PARALLEL_CONFIG=${THREAD_PARALLEL_CONFIG:-PARALLEL_SINGLE_THREAD}
 # Based another env var, pick one template to use
 if [[ -v USE_NSA_TDD_MONO ]]; then cp $PREFIX/etc/gnb.nsa.tdd.conf $PREFIX/etc/gnb.conf; fi
 if [[ -v USE_SA_TDD_MONO ]]; then cp $PREFIX/etc/gnb.sa.tdd.conf $PREFIX/etc/gnb.conf; fi
+# Sometimes, the templates are not enough. We mount a conf file on $PREFIX/etc. It can be a template itself.
+if [[ -v USE_VOLUMED_CONF ]]; then cp $PREFIX/etc/mounted.conf $PREFIX/etc/gnb.conf; fi
 
 # Only this template will be manipulated
 CONFIG_FILES=`ls $PREFIX/etc/gnb.conf || true`
 
 for c in ${CONFIG_FILES}; do
+    # Sometimes templates have no pattern to be replaced.
+    if ! grep -oP '@[a-zA-Z0-9_]+@' ${c}; then
+        echo "Configuration is already set"
+        break
+    fi
+
     # grep variable names (format: ${VAR}) from template to be rendered
     VARS=$(grep -oP '@[a-zA-Z0-9_]+@' ${c} | sort | uniq | xargs)
 
-- 
GitLab