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
This commit is contained in:
parent
91c5453cc2
commit
95f38fb0f6
@ -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 %}
|
||||
|
||||
|
@ -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 %}
|
||||
|
Loading…
Reference in New Issue
Block a user