commit 943c03f2ea455dfa583f065bdc42168c8def448e Author: Gaƫl THEROND (Fl1nt) Date: Thu Sep 17 14:38:21 2020 +0200 Improve pip install process for offline deployment. * "Use distribution-provided pip" * "Use python's pip module invocation method" * "Install pip earlier in order to avoid multiple installation" * "Remove pip_version variable requirement and call" Change-Id: Id0e738044a1931f9d611a7281a48ea4a593f1cf1 Closes-bug: #1893204 (cherry picked from commit b93c40a3635fbce72e48dc29120e50484cba36ca) diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2 index 1605f60..69c0d53 100644 --- a/docker/base/Dockerfile.j2 +++ b/docker/base/Dockerfile.j2 @@ -264,6 +264,7 @@ RUN {{ macros.install_packages(base_centos_yum_repo_packages | customizable("cen 'ncurses', 'procps-ng', 'python3', + 'python3-pip', 'socat', 'sudo', 'tar', @@ -334,6 +335,7 @@ COPY apt_preferences /etc/apt/preferences.d/kolla-custom 'open-iscsi', 'procps', 'python3', + 'python3-pip', 'socat', 'sudo', 'tgt'] diff --git a/docker/elasticsearch/elasticsearch-curator/Dockerfile.j2 b/docker/elasticsearch/elasticsearch-curator/Dockerfile.j2 index 27bc320..b08035a 100644 --- a/docker/elasticsearch/elasticsearch-curator/Dockerfile.j2 +++ b/docker/elasticsearch/elasticsearch-curator/Dockerfile.j2 @@ -29,7 +29,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'elasticsearch-curator' ] %} -RUN {{ macros.install_pip(elasticsearch_curator_pip_packages | customizable("pip_packages"), constraints=false, pip_version="pip3") }} \ +RUN {{ macros.install_pip(elasticsearch_curator_pip_packages | customizable("pip_packages"), constraints=false) }} \ && mkdir -p /etc/elasticsearch-curator \ && chown -R elasticsearch: /etc/elasticsearch-curator diff --git a/docker/gnocchi/gnocchi-base/Dockerfile.j2 b/docker/gnocchi/gnocchi-base/Dockerfile.j2 index 21d8879..88c372b 100644 --- a/docker/gnocchi/gnocchi-base/Dockerfile.j2 +++ b/docker/gnocchi/gnocchi-base/Dockerfile.j2 @@ -51,7 +51,7 @@ RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \ ] %} {{ macros.install_packages(gnocchi_base_packages | customizable("packages")) }} -RUN {{ macros.install_pip(gnocchi_base_pip_packages | customizable("pip_packages"), constraints=false, pip_version="pip3") }} \ +RUN {{ macros.install_pip(gnocchi_base_pip_packages | customizable("pip_packages"), constraints=false) }} \ && truncate -s 0 /etc/apache2/ports.conf {% endif %} diff --git a/docker/kolla-toolbox/Dockerfile.j2 b/docker/kolla-toolbox/Dockerfile.j2 index 05c1170..898ea66 100644 --- a/docker/kolla-toolbox/Dockerfile.j2 +++ b/docker/kolla-toolbox/Dockerfile.j2 @@ -53,10 +53,6 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% endif %} {{ macros.install_packages(kolla_toolbox_packages | customizable("packages")) }} -{% block kolla_toolbox_source_install_python_pip %} -{{ macros.get_pip() }} -{% endblock %} - {% set kolla_toolbox_pip_virtualenv_packages = [ 'virtualenv' ] %} diff --git a/docker/macros.j2 b/docker/macros.j2 index efeac9b..56dd141 100644 --- a/docker/macros.j2 +++ b/docker/macros.j2 @@ -32,18 +32,9 @@ {% endif %} {%- endmacro %} -{% macro get_pip() %} -RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \ - && python3 get-pip.py \ - && rm get-pip.py -{% endmacro %} - -{% macro install_pip(packages, constraints = true, pip_version = pip) %} +{% macro install_pip(packages, constraints = true) %} {%- if packages is sequence and packages|length > 0 -%} -{%- if not pip_version -%} - {%- set pip_version = 'pip' -%} -{%- endif -%} - {{ pip_version }} --no-cache-dir install --upgrade{{ ' ' }} + python{{ distro_python_version }} -m pip --no-cache-dir install --upgrade{{ ' ' }} {%- if constraints %}-c /requirements/upper-constraints.txt {% endif -%} {{ packages | join(' ') }} {%- else -%} diff --git a/docker/openstack-base/Dockerfile.j2 b/docker/openstack-base/Dockerfile.j2 index 4f92970..cefea6d 100644 --- a/docker/openstack-base/Dockerfile.j2 +++ b/docker/openstack-base/Dockerfile.j2 @@ -189,10 +189,6 @@ ENV DEBIAN_FRONTEND noninteractive {{ macros.install_packages(openstack_base_packages | customizable("packages")) }} -{% block source_install_python_pip %} -{{ macros.get_pip() }} -{% endblock %} - {% set openstack_base_pip_packages = [ 'Babel', 'Mako', diff --git a/docker/openvswitch/openvswitch-netcontrold/Dockerfile.j2 b/docker/openvswitch/openvswitch-netcontrold/Dockerfile.j2 index fdbaf3f..b5dbbfc 100644 --- a/docker/openvswitch/openvswitch-netcontrold/Dockerfile.j2 +++ b/docker/openvswitch/openvswitch-netcontrold/Dockerfile.j2 @@ -27,7 +27,7 @@ RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ ] %} -RUN {{ macros.install_pip(openvswitch_netcontrold_pip_packages | customizable("pip_packages"), constraints = false, pip_version = "pip3") }} +RUN {{ macros.install_pip(openvswitch_netcontrold_pip_packages | customizable("pip_packages"), constraints = false) }} {% endblock %}