diff options
| author | Jon Schlueter <jschluet@redhat.com> | 2019-03-15 15:47:30 -0400 |
|---|---|---|
| committer | Jon Schlueter <jschluet@redhat.com> | 2019-03-21 13:20:48 -0400 |
| commit | 95f38fb0f6056ef201d96e141732b32e97338e97 (patch) | |
| tree | 25a7e75776535fe1ea1babf2876477cfd5c6678a | |
| parent | 91c5453cc21491df42cc738583b646ca7afec08e (diff) | |
| download | kolla-95f38fb0f6056ef201d96e141732b32e97338e97.tar.gz kolla-95f38fb0f6056ef201d96e141732b32e97338e97.zip | |
cleanup in base for yum install entries
- introduce install_packages(..., chain=True) to allow chaining on
onto existing RUN commands
- introduce install_packages(..., clean) which defaults correctly
but allows you to override if you want to avoid doing extra
package manager cleanup
- refactored several calls in base to make use of these new features
In general this allows for macros.install_packages to be chained
after other calls
for example
RUN foo && {{ macros.install_packages(..., chain=True) }}
Change-Id: I4b2fe8e13ee3c0fffe77a1179a7af5b534496996
| -rw-r--r-- | docker/base/Dockerfile.j2 | 14 | ||||
| -rw-r--r-- | docker/macros.j2 | 13 |
2 files changed, 11 insertions, 16 deletions
diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2 index cf1f8e437..18212f0bb 100644 --- a/docker/base/Dockerfile.j2 +++ b/docker/base/Dockerfile.j2 @@ -166,11 +166,9 @@ RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 # Enable couple required repositories for all RHEL builds # Turn on EPEL throughout the build RUN yum-config-manager --enable rhel-7-server-optional-rpms \ - && yum -y install \ - yum-plugin-priorities \ + && {{ macros.install_packages( ['yum-plugin-priorities' ], chain=True, clean=False) }} \ {%- if install_type != 'binary' or install_metatype != 'rdo' %} - && yum -y install \ - https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \ + && {{ macros.install_packages( [ 'https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm' ], chain=True, clean=False) }} \ && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 \ {% endif -%} && yum-config-manager --enable rhel-7-server-extras-rpms \ @@ -187,10 +185,7 @@ RUN yum-config-manager --enable rhel-7-server-optional-rpms \ {% block base_oraclelinux_package_installation %} COPY oraclelinux-extras.repo /etc/yum.repos.d/oraclelinux-extras.repo -RUN yum -y install \ - tar \ - yum-utils \ - https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \ +RUN {{ macros.install_packages( ['tar', 'yum-utils', 'https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm' ], chain=True, clean=False) }} \ && rpm -Uvh --nodeps \ http://mirror.centos.org/centos-7/7/extras/x86_64/Packages/centos-release-ceph-luminous-1.1-2.el7.centos.noarch.rpm \ http://mirror.centos.org/centos-7/7/extras/x86_64/Packages/centos-release-opstools-1-8.el7.noarch.rpm \ @@ -203,8 +198,7 @@ RUN yum -y install \ && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage \ && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Virtualization \ && yum-config-manager --enable ol7_optional_latest ol7_addons \ - && yum -y install \ - yum-plugin-priorities \ + && {{ macros.install_packages( ['yum-plugin-priorities' ], chain=True, clean=False) }} \ && {{ macros.rpm_security_update(clean_package_cache) }} {% endblock %} diff --git a/docker/macros.j2 b/docker/macros.j2 index d27b7b238..533a14aa5 100644 --- a/docker/macros.j2 +++ b/docker/macros.j2 @@ -1,16 +1,17 @@ -{% macro install_packages(packages) -%} +{% macro install_packages(packages, chain=False, clean=clean_package_cache) -%} {% if packages is defined and packages|length > 0 -%} - {% if base_package_type == 'rpm' -%} - RUN {{ distro_package_manager }} -y install {{ packages | join(' ') }} - {%- if clean_package_cache %} \ - && {{ distro_package_manager }} clean all && rm -rf /var/cache/{{ distro_package_manager }}{% endif %} + {% if not chain -%} RUN {% endif -%} + {%- if base_package_type == 'rpm' -%} + {{ distro_package_manager }} -y install {{ packages | join(' ') }} + {%- if clean %} \ + && {{ distro_package_manager }} clean all && rm -rf /var/cache/{{ distro_package_manager }}{% endif -%} {%- elif base_package_type == 'deb' -%} {#- debian_package_install is a utility method to build up an appropriate set of commands to install packages in a debian-based environment that may include URL links to a .deb package -#} - RUN {{ debian_package_install(packages, clean_package_cache) }} + {{ debian_package_install(packages, clean) }} {%- endif %} {%- endif %} {%- endmacro %} |
