
I think this simple change will make it much more readable Change-Id: I369aee3a19d17c134db1d13b94b8c45a44733149
115 lines
4.6 KiB
Django/Jinja
115 lines
4.6 KiB
Django/Jinja
RUN if [ $(awk -F '=' '/DISTRIB_RELEASE/{print $2}' /etc/lsb-release) != "{{ supported_distro_release }}" ]; then \
|
|
echo "Only release '{{ supported_distro_release }}' is supported on {{ base_distro }}"; false; fi
|
|
|
|
# Customize PS1 bash shell
|
|
RUN cat /tmp/kolla_bashrc >> /etc/bash.bashrc
|
|
|
|
# This will prevent questions from being asked during the install
|
|
ENV DEBIAN_FRONTEND noninteractive
|
|
|
|
# Reducing disk footprint
|
|
COPY dpkg_reducing_disk_footprint /etc/dpkg/dpkg.cfg.d/dpkg_reducing_disk_footprint
|
|
|
|
{% block base_ubuntu_package_pre %}
|
|
# Need apt-transport-https and ca-certificates before replacing sources.list or
|
|
# apt-get update will not work if any repositories are accessed via HTTPS
|
|
RUN apt-get update \
|
|
&& apt-get -y install --no-install-recommends apt-transport-https ca-certificates gnupg dirmngr \
|
|
&& apt-get clean
|
|
{% endblock %}
|
|
|
|
{% block base_ubuntu_package_sources_list %}
|
|
{% if base_distro == 'debian' or ( base_distro == 'ubuntu' and base_arch == 'x86_64' ) %}
|
|
COPY sources.list.{{ base_distro }} /etc/apt/sources.list
|
|
{% else %}
|
|
COPY sources.list.{{ base_distro }}.{{ base_arch }} /etc/apt/sources.list
|
|
{% endif %}
|
|
{% endblock %}
|
|
|
|
{% block base_ubuntu_package_apt_preferences %}
|
|
COPY apt_preferences.{{ base_distro }} /etc/apt/preferences
|
|
{% endblock %}
|
|
|
|
{% set base_apt_packages = [
|
|
'apt-utils',
|
|
'curl',
|
|
'gawk',
|
|
'iproute2',
|
|
'kmod',
|
|
'lvm2',
|
|
'netbase',
|
|
'open-iscsi',
|
|
'python',
|
|
'sudo',
|
|
'tgt']
|
|
%}
|
|
{% set base_compiler_packages = [
|
|
'build-essential'
|
|
] %}
|
|
|
|
{% if base_distro == 'ubuntu' %}
|
|
{# 05CE15085FC09D18E99EFB22684A14CF2582E0C5 -- InfluxDB Packaging Service <support@influxdb.com> #}
|
|
{# 177F4010FE56CA3336300305F1656F24C74CD1D8 -- MariaDB Signing Key <signing-key@mariadb.org> #}
|
|
{# 391A9AA2147192839E9DB0315EDB1B62EC4926EA -- Canonical Cloud Archive Signing Key <ftpmaster@canonical.com> #}
|
|
{# 418A7F2FB0E1E6E7EABF6FE8C2E73424D59097AB -- packagecloud ops (production key) <ops@packagecloud.io> #}
|
|
{# 46095ACC8548582C1A2699A9D27D666CD88E42B4 -- Elasticsearch (Elasticsearch Signing Key) <dev_ops@elasticsearch.org> #}
|
|
{# 4D1BB29D63D98E422B2113B19334A25F8507EFA5 -- Percona MySQL Development Team (Packaging key) <mysql-dev@percona.com> #}
|
|
{# 58118E89F3A912897C070ADBF76221572C52609D -- Docker Release Tool (releasedocker) <docker@docker.com> #}
|
|
{# 901F9177AB97ACBE -- Treasure Data, Inc (Treasure Agent Official Signing key) <support@treasure-data.com> #}
|
|
{% set base_apt_keys = [
|
|
'05CE15085FC09D18E99EFB22684A14CF2582E0C5',
|
|
'177F4010FE56CA3336300305F1656F24C74CD1D8',
|
|
'391A9AA2147192839E9DB0315EDB1B62EC4926EA',
|
|
'418A7F2FB0E1E6E7EABF6FE8C2E73424D59097AB',
|
|
'46095ACC8548582C1A2699A9D27D666CD88E42B4',
|
|
'4D1BB29D63D98E422B2113B19334A25F8507EFA5',
|
|
'58118E89F3A912897C070ADBF76221572C52609D',
|
|
'901F9177AB97ACBE',
|
|
] %}
|
|
{% elif base_distro == 'debian' %}
|
|
{% set base_apt_keys = [
|
|
'58118E89F3A912897C070ADBF76221572C52609D',
|
|
'0xcbcb082a1bb943db',
|
|
'D27D666CD88E42B4',
|
|
'05CE15085FC09D18E99EFB22684A14CF2582E0C5',
|
|
'418A7F2FB0E1E6E7EABF6FE8C2E73424D59097AB',
|
|
'901F9177AB97ACBE',
|
|
'E84AC2C0460F3994',
|
|
] %}
|
|
{% set base_apt_packages = base_apt_packages +
|
|
['sudo',]
|
|
%}
|
|
{% endif %}
|
|
|
|
{% block base_ubuntu_package_installation %}
|
|
{%- block base_ubuntu_package_key_installation %}
|
|
{%- for key in base_apt_keys | customizable('apt_keys') %}
|
|
{%- if loop.first %}RUN {% else %} && {% endif %}apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 {{ key }}
|
|
{%- if not loop.last %} \
|
|
{% endif -%}
|
|
{% endfor %}
|
|
{% endblock %}
|
|
RUN apt-get update \
|
|
&& apt-get -y upgrade \
|
|
&& apt-get -y dist-upgrade \
|
|
&& apt-get -y install --no-install-recommends \
|
|
{%- for package in base_apt_packages | customizable('apt_packages') %}
|
|
{{ package }} \
|
|
{%- endfor %}
|
|
&& apt-get clean
|
|
{% endblock %}
|
|
|
|
{% if base_distro == 'ubuntu' %}
|
|
RUN sed -i \
|
|
-e "s|\('purelib': '\$base/\)local/\(lib/python\$py_version_short/dist-packages',\)|\1\2|" \
|
|
-e "s|\('platlib': '\$platbase/\)local/\(lib/python\$py_version_short/dist-packages',\)|\1\2|" \
|
|
-e "s|\('headers': '\$base/\)local/\(include/python\$py_version_short/\$dist_name',\)|\1\2|" \
|
|
-e "s|\('scripts': '\$base/\)local/\(bin',\)|\1\2|" \
|
|
-e "s|\('data' : '\$base\)/local\(',\)|\1\2|" \
|
|
/usr/lib/python2.7/distutils/command/install.py \
|
|
&& rm -rf /usr/lib/python2.7/site-packages \
|
|
&& ln -s dist-packages /usr/lib/python2.7/site-packages
|
|
{% endif %}
|
|
|
|
{# endif for base_distro debian, ubuntu #}
|