From 662f53dd795fbc439b923e09cbf088f613d01003 Mon Sep 17 00:00:00 2001 From: Pratik Raj Date: Sat, 6 Jun 2020 21:46:26 +0530 Subject: 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 Issue-ID: MULTICLOUD-1080 Signed-off-by: Pratik Raj Change-Id: Ib79fae7e69eb669e39bc3eb52373668367460ba2 --- kud/hosting_providers/containerized/installer.sh | 4 ++-- kud/hosting_providers/vagrant/installer.sh | 8 ++++---- kud/hosting_providers/vagrant/setup.sh | 4 ++-- kud/tests/_common_test.sh | 2 +- kud/tests/cFW/postinstall.sh | 4 ++-- tox.ini | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/kud/hosting_providers/containerized/installer.sh b/kud/hosting_providers/containerized/installer.sh index fe9d1e9d..5e46d967 100755 --- a/kud/hosting_providers/containerized/installer.sh +++ b/kud/hosting_providers/containerized/installer.sh @@ -33,7 +33,7 @@ function _install_ansible { local version=$(grep "ansible_version" ${kud_playbooks}/kud-vars.yml | awk -F ': ' '{print $2}') mkdir -p /etc/ansible/ - pip install ansible==$version + pip install --no-cache-dir ansible==$version } # install_k8s() - Install Kubernetes using kubespray tool @@ -56,7 +56,7 @@ function install_kubespray { rm $tarball pushd $dest_folder/kubespray-$version/ - pip install -r ./requirements.txt + pip install --no-cache-dir -r ./requirements.txt make mitogen popd rm -f $kud_inventory_folder/group_vars/all.yml 2> /dev/null diff --git a/kud/hosting_providers/vagrant/installer.sh b/kud/hosting_providers/vagrant/installer.sh index 7b8b28d4..27ab7fc1 100755 --- a/kud/hosting_providers/vagrant/installer.sh +++ b/kud/hosting_providers/vagrant/installer.sh @@ -41,7 +41,7 @@ function _install_go { # _install_pip() - Install Python Package Manager function _install_pip { if $(pip --version &>/dev/null); then - sudo -E pip install --upgrade pip + sudo -E pip install --no-cache-dir --upgrade pip else sudo apt-get install -y python-dev curl -sL https://bootstrap.pypa.io/get-pip.py | sudo python @@ -56,7 +56,7 @@ function _install_ansible { _install_pip local version=$(grep "ansible_version" ${kud_playbooks}/kud-vars.yml | awk -F ': ' '{print $2}') sudo mkdir -p /etc/ansible/ - sudo -E pip install ansible==$version + sudo -E pip install --no-cache-dir ansible==$version } # _install_docker() - Download and install docker-engine @@ -123,7 +123,7 @@ function install_k8s { rm $tarball pushd $dest_folder/kubespray-$version/ - sudo -E pip install -r ./requirements.txt + sudo -E pip install --no-cache-dir -r ./requirements.txt make mitogen popd rm -f $kud_inventory_folder/group_vars/all.yml 2> /dev/null @@ -175,7 +175,7 @@ function install_plugin { echo "Installing multicloud/k8s plugin" _install_go _install_docker - sudo -E pip install docker-compose + sudo -E pip install --no-cache-dir docker-compose sudo mkdir -p /opt/{kubeconfig,consul/config} sudo cp $HOME/.kube/config /opt/kubeconfig/kud diff --git a/kud/hosting_providers/vagrant/setup.sh b/kud/hosting_providers/vagrant/setup.sh index 9c65ccdb..00b6e86f 100755 --- a/kud/hosting_providers/vagrant/setup.sh +++ b/kud/hosting_providers/vagrant/setup.sh @@ -178,9 +178,9 @@ ${INSTALLER_CMD} "${packages[@]}" if ! which pip; then curl -sL https://bootstrap.pypa.io/get-pip.py | sudo python else - sudo -H -E pip install --upgrade pip + sudo -H -E pip install --no-cache-dir --upgrade pip fi -sudo -H -E pip install tox +sudo -H -E pip install --no-cache-dir tox if [[ ${http_proxy+x} ]]; then vagrant plugin install vagrant-proxyconf fi diff --git a/kud/tests/_common_test.sh b/kud/tests/_common_test.sh index 32781e18..0ca606b6 100755 --- a/kud/tests/_common_test.sh +++ b/kud/tests/_common_test.sh @@ -36,7 +36,7 @@ function install_ipcalc { function install_ovn_deps { if ! $(yq --version &>/dev/null); then install_deps # jq needed as it's dependency of yq - sudo -E pip install yq + sudo -E pip install --no-cache-dir yq fi if ! $(ovn-nbctl --version &>/dev/null); then function ovn_ubuntu_deps { diff --git a/kud/tests/cFW/postinstall.sh b/kud/tests/cFW/postinstall.sh index 5a1d5043..ec2cba49 100755 --- a/kud/tests/cFW/postinstall.sh +++ b/kud/tests/cFW/postinstall.sh @@ -57,8 +57,8 @@ function install_docker_compose { if ! which pip; then curl -sL https://bootstrap.pypa.io/get-pip.py | python fi - pip install --upgrade pip - pip install docker-compose + pip install --no-cache-dir --upgrade pip + pip install --no-cache-dir docker-compose } echo 'vm.nr_hugepages = 1024' >> /etc/sysctl.conf diff --git a/tox.ini b/tox.ini index 5cebea87..7c66248c 100644 --- a/tox.ini +++ b/tox.ini @@ -15,7 +15,7 @@ envlist = bashate [testenv] passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY usedevelop = False -install_command = pip install {opts} {packages} +install_command = pip install --no-cache-dir {opts} {packages} [testenv:bashate] deps = -- cgit 1.2.3-korg