diff options
Diffstat (limited to 'docker/base/apt_distros.j2')
| -rw-r--r-- | docker/base/apt_distros.j2 | 114 |
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 #} |
