diff --git a/docker/Dockerfile.base b/docker/Dockerfile.base
index 0e6712ef86f50e8f0e880de4ac4648eee7dfa2bc..8d8cf0e2bfcf66eb49ed9e6090ebb1fad7297e4d 100644
--- a/docker/Dockerfile.base
+++ b/docker/Dockerfile.base
@@ -3,11 +3,14 @@ ARG BASE_IMG=ubuntu:20.04
 FROM $BASE_IMG
 LABEL description="A base image with OTB and remote modules for the MORINGA processing chain, CIRAD/UMR TETIS"
 
-# Build env
 WORKDIR /tmp
-ARG OTB_BRANCH=release-7.2
 
-# System dependencies
+# Controls USE_SYSTEM_* variables
+ARG USE_SYSTEM_DEPS=false
+# DEPS_INSTALL_PREFIX=/usr is required when USE_SYSTEM_DEPS=true
+ARG DEPS_INSTALL_PREFIX=/opt/otb
+
+# Install build dependencies
 RUN apt-get update \
     && export DEBIAN_FRONTEND=noninteractive \
     && apt-get install -y --no-install-recommends \
@@ -33,83 +36,66 @@ RUN apt-get update \
         vim \
         wget \
         zip \
-    # OTB CLI build requirements
-    && apt-get install -y --no-install-recommends \
-        bison \
-        gdal-bin \
-        python3-gdal \
-        libboost-date-time-dev \
-        libboost-filesystem-dev \
-        libboost-graph-dev \
-        libboost-program-options-dev \
-        libboost-system-dev \
-        libboost-thread-dev \
-        libcurl4-gnutls-dev \
-        libexpat1-dev \
-        libfftw3-dev \
-        libgdal-dev \
-        libgeotiff-dev \
-        libgsl-dev \
-        libinsighttoolkit4-dev \
-        libkml-dev \
-        libmuparser-dev \
-        libmuparserx-dev \
-        libopencv-core-dev \
-        libopencv-ml-dev \
-        libopenthreads-dev \
-        libossim-dev \
-        libpng-dev \
-        libsvm-dev \
-        libtinyxml-dev \
-        zlib1g-dev \
-    && apt-get clean \
-    && rm -rf /var/lib/apt/lists/*
+    && if $USE_SYSTEM_DEPS; then \
+        apt-get install -y --no-install-recommends \
+            bison \
+            gdal-bin \
+            python3-gdal \
+            libboost-date-time-dev \
+            libboost-filesystem-dev \
+            libboost-graph-dev \
+            libboost-program-options-dev \
+            libboost-system-dev \
+            libboost-thread-dev \
+            libcurl4-gnutls-dev \
+            libexpat1-dev \
+            libfftw3-dev \
+            libgdal-dev \
+            libgeotiff-dev \
+            libgsl-dev \
+            libinsighttoolkit4-dev \
+            libkml-dev \
+            libmuparser-dev \
+            libmuparserx-dev \
+            libopencv-core-dev \
+            libopencv-ml-dev \
+            libopenthreads-dev \
+            libossim-dev \
+            libpng-dev \
+            libsvm-dev \
+            libtinyxml-dev \
+            zlib1g-dev; fi \
+    && apt-get clean && rm -rf /var/lib/apt/lists/*
+
+# OTB branch to clone
+ARG OTB_BRANCH=release-7.2
+# Set USE_SYSTEM_* flags
+COPY docker/build-flags-otb.txt .
+RUN if ! $USE_SYSTEM_DEPS; then \
+        sed -i -r "s/-DUSE_SYSTEM_([A-Z0-9]*)=ON/-DUSE_SYSTEM_\1=OFF/" build-flags-otb.txt ; fi
 
-# SuperBuild OTB with remote modules, no GUI
-RUN git clone --single-branch -b $OTB_BRANCH "https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb.git" \
-    && mkdir /tmp/SuperBuild-archives /tmp/build /opt/otb \
+# SuperBuild OTB
+RUN mkdir /tmp/SuperBuild-archives /tmp/build /opt/otb \
+    && git clone --single-branch -b $OTB_BRANCH "https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb.git" \
+    && if ! $USE_SYSTEM_DEPS; then \
+        cd SuperBuild-archives \
+        && OTB_VERSION=$(head -n1 /tmp/otb/RELEASE_NOTES.txt | sed -r 's/OTB-v ([0-9].[0-9]).[0-9] -.*/\1/') \
+        && curl -s "https://www.orfeo-toolbox.org/packages/archives/OTB/SuperBuild-archives-$OTB_VERSION.tar.bz2" \
+            | tar -xjv --exclude 'q*' --exclude '*gl*'; fi \
     && cd /tmp/build \
-    # All deps are available via apt-get (except SHARK)
+    && OTB_CMAKE_FLAGS=$(cat "../build-flags-otb.txt") \
     && cmake /tmp/otb/SuperBuild \
-        -DCMAKE_BUILD_TYPE='Release' \
-        -DUSE_SYSTEM_BOOST=ON \
-        -DUSE_SYSTEM_CURL=ON \
-        -DUSE_SYSTEM_EXPAT=ON \
-        -DUSE_SYSTEM_FFTW=ON \
-        -DUSE_SYSTEM_FREETYPE=ON \
-        -DUSE_SYSTEM_GDAL=ON \
-        -DUSE_SYSTEM_GEOS=ON \
-        -DUSE_SYSTEM_GEOTIFF=ON \
-        -DUSE_SYSTEM_GSL=ON \
-        -DUSE_SYSTEM_ITK=ON \
-        -DUSE_SYSTEM_LIBKML=ON \
-        -DUSE_SYSTEM_LIBSVM=ON \
-        -DUSE_SYSTEM_MUPARSER=ON \
-        -DUSE_SYSTEM_MUPARSERX=ON \
-        -DUSE_SYSTEM_OPENCV=ON \
-        -DUSE_SYSTEM_OPENTHREADS=ON \
-        -DUSE_SYSTEM_OSSIM=ON \
-        -DUSE_SYSTEM_PNG=ON  \
-        -DUSE_SYSTEM_SHARK=OFF \
-        -DUSE_SYSTEM_TINYXML=ON \
-        -DUSE_SYSTEM_ZLIB=ON \
-        -DUSE_SYSTEM_SWIG=ON \
-        -DOTB_USE_QT=OFF \
-        -DOTB_USE_OPENGL=OFF \
-        -DOTB_USE_GLUT=OFF \
-        -DOTB_USE_GLEW=OFF \
-        -DOTB_USE_GLFW=OFF \
+        $OTB_CMAKE_FLAGS \
+        -DCMAKE_BUILD_TYPE="Release" \
         -DDOWNLOAD_LOCATION=/tmp/SuperBuild-archives \
         -DCMAKE_INSTALL_PREFIX=/opt/otb \
-    && make OTB_DEPENDS -j4 \
-    # Remote modules
+    && make OTB_DEPENDS -j12 \
     && cd /tmp/otb/Modules/Remote \
     && rm -f otbGRM.remote.cmake \
     && git clone "https://gitlab.irstea.fr/remi.cresson/GRM.git" \
     && git clone "https://gitlab.irstea.fr/remi.cresson/LSGRM.git" \
     && git clone "https://gitlab.irstea.fr/raffaele.gaetano/otbVectorClassification.git" \
     && git clone "https://gitlab.irstea.fr/raffaele.gaetano/otbSelectiveHaralickTextures.git" \
-    # Build OTB and modules
     && cd /tmp/build/OTB/build \
     && cmake /tmp/otb \
         -DModule_otbGRM=ON \
@@ -123,13 +109,12 @@ RUN git clone --single-branch -b $OTB_BRANCH "https://gitlab.orfeo-toolbox.org/o
         -DCMAKE_INSTALL_PREFIX=/opt/otb \
     && cd /tmp/build \
     && make -j8 \
-    # For a lightweight layer
-    && rm -rf /tmp/SuperBuild-archives /tmp/otb* /tmp/build /root/.cache /opt/otb/bin/otbgui_*
+    && rm -rf /tmp/* /root/.cache /opt/otb/bin/otbgui_*
 
 # Persistent environment variables
-ENV PATH=/opt/otb/bin:$PATH
-ENV PYTHONPATH=/opt/otb/lib/python3/dist-packages:/opt/otb/lib/otb/python:$PYTHONPATH
-ENV LD_LIBRARY_PATH=/opt/otb/lib:$LD_LIBRARY_PATH
-ENV OTB_APPLICATION_PATH=/opt/otb/lib/otb/applications
-ENV PROJ_LIB=/usr/share/proj
-ENV GDAL_DATA=/usr/share/gdal
+ENV PATH="/opt/otb/bin:$PATH"
+ENV PYTHONPATH="/opt/otb/lib/python3/dist-packages:/opt/otb/lib/otb/python:$PYTHONPATH"
+ENV LD_LIBRARY_PATH="/opt/otb/lib:$LD_LIBRARY_PATH"
+ENV OTB_APPLICATION_PATH="/opt/otb/lib/otb/applications"
+ENV PROJ_LIB="$DEPS_INSTALL_PREFIX/share/proj"
+ENV GDAL_DATA="$DEPS_INSTALL_PREFIX/share/gdal"
diff --git a/docker/Dockerfile.moringa b/docker/Dockerfile.moringa
index 37bf90b2003dcadbce7916e762b09f1dd0d07093..f0efa658370c61c965b00495ea1c9cf5d267218c 100644
--- a/docker/Dockerfile.moringa
+++ b/docker/Dockerfile.moringa
@@ -1,6 +1,7 @@
 ARG BASE_IMG=gitlab-registry.irstea.fr/raffaele.gaetano/moringa/base:latest
 FROM $BASE_IMG
 LABEL description="A container for the MORINGA processing chain, CIRAD/UMR TETIS"
+LABEL maintainer="Raffaele GAETANO"
 
 # PIP dependencies : rios, fmask
 RUN pip3 install rios.core \
diff --git a/docker/README.md b/docker/README.md
index 9bb903b71f67bcfd8eab488327b558b88a168a91..c27c3621c117a8901541a21b112afaba54c4107b 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -102,16 +102,15 @@ cd moringa
 
 docker login gitlab-registry.irstea.fr
 
-# OTB base image, example with tag 7.2.0 (default value is release-7.2) 
-# It is located in subregistry gitlab-registry.irstea.fr/raffaele.gaetano/moringa/base
-docker build --build-arg OTB_BRANCH=7.2.0 -f docker/Dockerfile.base \
-    -t gitlab-registry.irstea.fr/raffaele.gaetano/moringa/base:focal-otb72 .
-docker push gitlab-registry.irstea.fr/raffaele.gaetano/moringa/base:focal-otb72
-
-# Tag 'moringa/base:latest' == default base image for the moringa build
-docker tag gitlab-registry.irstea.fr/raffaele.gaetano/moringa/base:focal-otb72 \
+# OTB base image, with default USE_SYSTEM_DEPS=false (build all dependencies from source)
+docker build -f docker/Dockerfile.base \
+    -t gitlab-registry.irstea.fr/raffaele.gaetano/moringa/base:focal-otb72-superbuild .
+docker push gitlab-registry.irstea.fr/raffaele.gaetano/moringa/base:focal-otb72-superbuild
+
+# Tag 'moringa/base:latest' == default tag and default base image for the MORINGA build
+docker tag gitlab-registry.irstea.fr/raffaele.gaetano/moringa/base:focal-otb72-superbuild \
     gitlab-registry.irstea.fr/raffaele.gaetano/moringa/base:latest
-# Default tag is "latest" (if not specified)
+# Default pulled or pushed tag is "latest" (if not specified)
 docker push gitlab-registry.irstea.fr/raffaele.gaetano/moringa/base
 
 # MORINGA build from the default 'moringa/base' image
@@ -119,13 +118,22 @@ docker push gitlab-registry.irstea.fr/raffaele.gaetano/moringa/base
 #git checkout custom_branch
 docker build -f docker/Dockerfile.moringa -t gitlab-registry.irstea.fr/raffaele.gaetano/moringa .
 docker push gitlab-registry.irstea.fr/raffaele.gaetano/moringa:latest
+# Keep tracks using tags
+docker tag gitlab-registry.irstea.fr/raffaele.gaetano/moringa:latest gitlab-registry.irstea.fr/raffaele.gaetano/moringa:ubuntu20
+docker push gitlab-registry.irstea.fr/raffaele.gaetano/moringa:ubuntu20
+
+# Build base image using system deps (libs installed from apt repository)
+docker build -f docker/Dockerfile.base \
+    --build-arg USE_SYSTEM_DEPS=true --build-arg DEPS_INSTALL_PREFIX=/usr \
+    -t gitlab-registry.irstea.fr/raffaele.gaetano/moringa/base:focal-otb72-sysdeps .
+docker push gitlab-registry.irstea.fr/raffaele.gaetano/moringa/base:focal-otb72-sysdeps
 
 # Build with custom ubuntu base image
 docker build --build-arg BASE_IMG=ubuntu:18.04 -f docker/Dockerfile.base \
-    -t gitlab-registry.irstea.fr/raffaele.gaetano/moringa/base:bionic-otb72 .
+    -t gitlab-registry.irstea.fr/raffaele.gaetano/moringa/base:bionic-otb72-superbuild .
 
-docker build -f docker/Dockerfile.moringa ---build-arg BASE_IMG=gitlab-registry.irstea.fr/raffaele.gaetano/moringa/base:bionic-otb72 \
-    -t gitlab-registry.irstea.fr/raffaele.gaetano/moringa:bionic .
+docker build -f docker/Dockerfile.moringa --build-arg BASE_IMG=gitlab-registry.irstea.fr/raffaele.gaetano/moringa/base:bionic-otb72-superbuild \
+    -t gitlab-registry.irstea.fr/raffaele.gaetano/moringa:ubuntu18 .
 ```
 
 ### Fix volume ownership issue (required if host's UID > 1000)
diff --git a/docker/build-flags-otb.txt b/docker/build-flags-otb.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bde4cb1a054092eb933123cbf879108aa2929158
--- /dev/null
+++ b/docker/build-flags-otb.txt
@@ -0,0 +1,27 @@
+-DUSE_SYSTEM_BOOST=ON
+-DUSE_SYSTEM_CURL=ON
+-DUSE_SYSTEM_EXPAT=ON
+-DUSE_SYSTEM_FFTW=ON
+-DUSE_SYSTEM_FREETYPE=ON
+-DUSE_SYSTEM_GDAL=ON
+-DUSE_SYSTEM_GEOS=ON
+-DUSE_SYSTEM_GEOTIFF=ON
+-DUSE_SYSTEM_GSL=ON
+-DUSE_SYSTEM_ITK=ON
+-DUSE_SYSTEM_LIBKML=ON
+-DUSE_SYSTEM_LIBSVM=ON
+-DUSE_SYSTEM_MUPARSER=ON
+-DUSE_SYSTEM_MUPARSERX=ON
+-DUSE_SYSTEM_OPENCV=ON
+-DUSE_SYSTEM_OPENTHREADS=ON
+-DUSE_SYSTEM_OSSIM=ON
+-DUSE_SYSTEM_PNG=ON 
+-DUSE_SYSTEM_SHARK=OFF
+-DUSE_SYSTEM_TINYXML=ON
+-DUSE_SYSTEM_ZLIB=ON
+
+-DOTB_USE_QT=OFF
+-DOTB_USE_OPENGL=OFF
+-DOTB_USE_GLUT=OFF
+-DOTB_USE_GLEW=OFF
+-DOTB_USE_GLFW=OFF