kolla/docker/openstack-base/Dockerfile.j2
Radosław Piliszek a41001f714 Upgrade pip and friends in source images
New pip has nice features for detection of conflicting
requirements.

When installing from PyPI, as we do in source images, running
the latest pip+setuptools+wheel is recommended.

Co-authored-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Change-Id: I4ae3a82cc796a60450c2a35beba32972964bc5d0
2021-11-26 12:11:12 +00:00

344 lines
9.5 KiB
Django/Jinja

FROM {{ namespace }}/{{ infra_image_prefix }}base:{{ tag }}
{% block labels %}
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
{% endblock %}
{% block openstack_base_header %}{% endblock %}
{% import "macros.j2" as macros with context %}
{{ macros.add_binary_source_envs() }}
{{ macros.enable_extra_repos(['opstools', 'powertools']) }}
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{% set openstack_base_packages = [
'avahi-libs',
'gnutls',
'httpd',
'initscripts',
'libxslt',
'libyaml',
'mailcap',
'mod_ssl',
'openssl',
'python3-PyYAML',
'python3-alembic',
'python3-aodhclient',
'python3-barbicanclient',
'python3-cachetools',
'python3-cloudkittyclient',
'python3-contextlib2',
'python3-cryptography',
'python3-designateclient',
'python3-elasticsearch',
'python3-eventlet',
'python3-extras',
'python3-glanceclient',
'python3-gnocchiclient',
'python3-heatclient',
'python3-httplib2',
'python3-ironicclient',
'python3-iso8601',
'python3-kazoo',
'python3-keystoneauth1',
'python3-keystoneclient',
'python3-keystonemiddleware',
'python3-logutils',
'python3-lxml',
'python3-magnumclient',
'python3-manilaclient',
'python3-migrate',
'python3-mimeparse',
'python3-mistralclient',
'python3-mod_wsgi',
'python3-muranoclient',
'python3-neutronclient',
'python3-novaclient',
'python3-openstackclient',
'python3-oslo-cache',
'python3-oslo-concurrency',
'python3-oslo-config',
'python3-oslo-context',
'python3-oslo-db',
'python3-oslo-i18n',
'python3-oslo-log',
'python3-oslo-messaging',
'python3-oslo-middleware',
'python3-oslo-policy',
'python3-oslo-reports',
'python3-oslo-rootwrap',
'python3-oslo-serialization',
'python3-oslo-service',
'python3-oslo-upgradecheck',
'python3-oslo-utils',
'python3-oslo-versionedobjects',
'python3-osprofiler',
'python3-paramiko',
'python3-paste-deploy',
'python3-pbr',
'python3-posix_ipc',
'python3-prettytable',
'python3-psycopg2',
'python3-pyasn1',
'python3-redis',
'python3-retrying',
'python3-routes',
'python3-saharaclient',
'python3-sqlalchemy',
'python3-sqlalchemy-collectd',
'python3-sqlparse',
'python3-swiftclient',
'python3-sysv_ipc',
'python3-tooz',
'python3-troveclient',
'python3-vitrageclient',
'python3-webob',
'systemd-sysv'
] %}
{% elif base_package_type == 'deb' %}
# This will prevent questions from being asked during the install
ENV DEBIAN_FRONTEND noninteractive
{% set openstack_base_packages = [
'apache2',
'libapache2-mod-wsgi-py3',
'openssl',
'patch',
'python3-aodhclient',
'python3-barbicanclient',
'python3-designateclient',
'python3-elasticsearch',
'python3-etcd',
'python3-etcd3gw',
'python3-gnocchiclient',
'python3-heatclient',
'python3-ironicclient',
'python3-kazoo',
'python3-keystoneclient',
'python3-magnumclient',
'python3-manilaclient',
'python3-memcache',
'python3-mistralclient',
'python3-muranoclient',
'python3-mysqldb',
'python3-openstackclient',
'python3-oslo.log',
'python3-osprofiler',
'python3-psycopg2',
'python3-pymemcache',
'python3-pymysql',
'python3-pyngus',
'python3-redis',
'python3-saharaclient',
'python3-sysv-ipc',
'python3-swiftclient',
'python3-troveclient',
'python3-zake',
] %}
{% endif %}
{{ macros.install_packages(openstack_base_packages | customizable("packages")) }}
{% elif install_type == 'source' %}
{% if base_package_type == 'rpm' %}
{% set openstack_base_packages = [
'gcc',
'gcc-c++',
'git',
'httpd',
'iproute',
'libffi-devel',
'libxml2-devel',
'libxslt-devel',
'libyaml-devel',
'make',
'mariadb-devel',
'mod_ssl',
'openssl',
'openssl-devel',
'pcre-devel',
'postgresql',
'postgresql-devel',
'python3-devel',
'python3-mod_wsgi',
'sqlite-devel',
'zip'
] %}
{% elif base_package_type == 'deb' %}
{% set openstack_base_packages = [
'apache2',
'build-essential',
'ca-certificates',
'git',
'libapache2-mod-wsgi-py3',
'libffi-dev',
'libmariadb-dev-compat',
'libpcre3-dev',
'libpq-dev',
'libssl-dev',
'libxml2-dev',
'libxslt1-dev',
'libyaml-dev',
'libz-dev',
'pkg-config',
'python3-dev',
'zip'
] %}
{% endif %}
{{ macros.enable_extra_repos(['powertools']) }}
{{ macros.install_packages(openstack_base_packages | customizable("packages")) }}
{% set openstack_base_pip_packages = [
'Babel',
'Mako',
'MarkupSafe',
'Paste',
'PasteDeploy',
'PyNaCl',
'PyYAML',
'Routes',
'SQLAlchemy',
'Tempita',
'WSME',
'WebOb',
'alembic',
'amqp',
'aodhclient',
'appdirs',
'automaton',
'bcrypt',
'cachetools',
'castellan',
'click',
'cliff',
'cmd2',
'contextlib2',
'cryptography',
'debtcollector',
'decorator',
'elasticsearch',
'eventlet',
'fasteners',
'funcsigs',
'futurist',
'gnocchiclient',
'greenlet',
'httplib2',
'iso8601',
'jinja2',
'jsonpatch',
'jsonpointer',
'jsonschema',
'keystoneauth1',
'keystonemiddleware',
'kombu',
'logutils',
'monotonic',
'mysqlclient',
'netaddr',
'netifaces',
'os-brick',
'os-client-config',
'os-traits',
'os-win',
'oslo.concurrency',
'oslo.config',
'oslo.context',
'oslo.db',
'oslo.i18n',
'oslo.log',
'oslo.messaging',
'oslo.middleware',
'oslo.policy',
'oslo.privsep',
'oslo.reports',
'oslo.rootwrap',
'oslo.serialization',
'oslo.service',
'oslo.upgradecheck',
'oslo.utils',
'oslo.versionedobjects',
'oslo.vmware',
'osprofiler',
'paramiko',
'pbr',
'pecan',
'pika',
'prettytable',
'psutil',
'pycadf',
'pyinotify',
'pymysql',
'pyngus',
'pyparsing',
'pyroute2',
'python-barbicanclient',
'python-cinderclient',
'python-cloudkittyclient',
'python-dateutil',
'python-designateclient',
'python-editor',
'python-glanceclient',
'python-heatclient',
'python-ironicclient',
'python-keystoneclient',
'python-magnumclient',
'python-manilaclient',
'python-memcached',
'python-mistralclient',
'python-muranoclient',
'python-neutronclient',
'python-novaclient',
'python-openstackclient',
'python-qpid-proton',
'python-saharaclient',
'python-swiftclient',
'python-troveclient',
'python-vitrageclient',
'pytz',
'repoze.lru',
'requests',
'requestsexceptions',
'retrying',
'setproctitle',
'simplegeneric',
'simplejson',
'six',
'sqlalchemy-migrate',
'sqlparse',
'stevedore',
'tooz[consul,etcd,etcd3,etcd3gw,zake,redis,postgresql,mysql,zookeeper,memcached,ipc]',
'unicodecsv',
'warlock',
'wrapt'
]
%}
ADD openstack-base-archive /openstack-base-source
RUN ln -s openstack-base-source/* /requirements \
&& mkdir -p /var/lib/kolla \
&& {{ macros.install_pip(['virtualenv'])}} \
&& virtualenv --system-site-packages /var/lib/kolla/venv
ENV PATH /var/lib/kolla/venv/bin:$PATH
RUN {{ macros.install_pip(['pip', 'wheel', 'setuptools']) }} \
&& {{ macros.install_pip(openstack_base_pip_packages | customizable("pip_packages")) }}
{% endif %}
{% if base_package_type == 'rpm' %}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf
{% elif base_package_type == 'deb' %}
RUN echo > /etc/apache2/ports.conf
{% endif %}
{% block openstack_base_footer %}{% endblock %}