From b9d94183348c6f72f79aa1fa69ce36147eda3660 Mon Sep 17 00:00:00 2001 From: Pratik raj Date: Sat, 13 Jun 2020 07:25:32 +0530 Subject: [PATCH] optimize size and time using "--no-cache-dir" Using "--no-cache-dir" flag in pip install ,make sure dowloaded packages by pip don't cached on system . This is a best practise which make sure to fetch ftom repo instead of using local cached one . Further , in case of Docker Containers , by restricing 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 --- benchmarks/workloads/tensorflow/Dockerfile | 4 ++-- images/default/Dockerfile | 2 +- tools/vm/ubuntu1604/40_kokoro.sh | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/benchmarks/workloads/tensorflow/Dockerfile b/benchmarks/workloads/tensorflow/Dockerfile index b5763e8ae..eefe6b3eb 100644 --- a/benchmarks/workloads/tensorflow/Dockerfile +++ b/benchmarks/workloads/tensorflow/Dockerfile @@ -3,8 +3,8 @@ FROM tensorflow/tensorflow:1.13.2 RUN apt-get update \ && apt-get install -y git RUN git clone --depth 1 https://github.com/aymericdamien/TensorFlow-Examples.git -RUN python -m pip install -U pip setuptools -RUN python -m pip install matplotlib +RUN python -m pip install --no-cache-dir -U pip setuptools +RUN python -m pip install --no-cache-dir matplotlib WORKDIR /TensorFlow-Examples/examples diff --git a/images/default/Dockerfile b/images/default/Dockerfile index 2b38e6c58..d058b83cb 100644 --- a/images/default/Dockerfile +++ b/images/default/Dockerfile @@ -2,7 +2,7 @@ FROM fedora:31 # Install bazel. RUN dnf install -y dnf-plugins-core && dnf copr enable -y vbatts/bazel RUN dnf install -y git gcc make golang gcc-c++ glibc-devel python3 which python3-pip python3-devel libffi-devel openssl-devel pkg-config glibc-static libstdc++-static patch diffutils -RUN pip install pycparser +RUN pip install --no-cache-dir pycparser RUN dnf install -y bazel3 # Install gcloud. RUN curl https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-289.0.0-linux-x86_64.tar.gz | \ diff --git a/tools/vm/ubuntu1604/40_kokoro.sh b/tools/vm/ubuntu1604/40_kokoro.sh index 2974f156c..d3b96c9ad 100755 --- a/tools/vm/ubuntu1604/40_kokoro.sh +++ b/tools/vm/ubuntu1604/40_kokoro.sh @@ -41,7 +41,7 @@ while true; do done # junitparser is used to merge junit xml files. -pip install junitparser +pip install --no-cache-dir junitparser # We need a kbuilder user, which may already exist. useradd -c "kbuilder user" -m -s /bin/bash kbuilder || true