aboutsummaryrefslogtreecommitdiff
path: root/docker/base/apt_distros.j2
diff options
context:
space:
mode:
Diffstat (limited to 'docker/base/apt_distros.j2')
-rw-r--r--docker/base/apt_distros.j2114
1 files changed, 114 insertions, 0 deletions
diff --git a/docker/base/apt_distros.j2 b/docker/base/apt_distros.j2
new file mode 100644
index 000000000..de03a82b4
--- /dev/null
+++ b/docker/base/apt_distros.j2
@@ -0,0 +1,114 @@
+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 #}