[docker] use `--no-cache-dir` flag to `pip` in dockerfiles to save space 42/116542/2
authorPratik raj <rajpratik71@gmail.com>
Wed, 30 Dec 2020 13:24:43 +0000 (18:54 +0530)
committerBartek Grzybowski <b.grzybowski@partner.samsung.com>
Mon, 18 Jan 2021 07:31:03 +0000 (07:31 +0000)
using "--no-cache-dir" flag in pip install ,make sure downloaded packages
by pip don't cached on system . This is a best practice which make sure
to fetch from repo instead of using local cached one . Further , in case
of Docker Containers , by restricting caching , we can reduce image size.
In term of stats , it depends upon the number of python packages
multiplied by their respective size . e.g for heavy packages with a lot
of dependencies it reduce a lot by don't caching pip packages.

Further , more detail information can be found at

https://medium.com/sciforce/strategies-of-docker-images-optimization-2ca9cc5719b6

Issue-ID: INT-1816
Signed-off-by: Pratik Raj <rajpratik71@gmail.com>
Change-Id: I2b55999209f3e9f617cf4fa2a19ff2544641dbc2

docker/Dockerfile

index 977ec9e..8fcecfe 100644 (file)
@@ -49,7 +49,7 @@ RUN apt-get update \
             wget vim  \
             python3.7 python3.7-dev python3-pip && \
     mkdir -p /var/opt/ONAP && \
-    pip install -r requirements.txt && \
+    pip install --no-cache-dir -r requirements.txt && \
     pip install --no-cache-dir \
     git+https://$PYTHON_UTILS_REPO@$PYTHON_UTILS_TAG#egg=robotframework-onap\&subdirectory=robotframework-onap && \
     git clone --depth 1 https://$TESTSUITE_REPO -b $TESTSUITE_TAG /var/opt/ONAP && \
@@ -58,8 +58,8 @@ RUN apt-get update \
     # moved in case line extension with comment isnt supported
     #git+https://$HEATBRIDGE_REPO@$HEATBRIDGE_TAG#egg=heatbridge\&subdirectory=heatbridge \
 
-RUN python3.7 -m pip install setuptools wheel
-RUN python3.7 -m pip install virtualenv
+RUN python3.7 -m pip install --no-cache-dir setuptools wheel
+RUN python3.7 -m pip install --no-cache-dir virtualenv
 
 # Copy the robot code
 RUN mkdir -p /etc/lighttpd && \