Files
kolla/docker/openstack-base/Dockerfile.j2
Radosław Piliszek 6319bc6f55 Remove weird deps
This is a follow-up on "Refactor httpd install to base image"
[1].

It seems a copy-paste algorithm was used to craft Dockerfiles
for some httpd-enabled services which resulted in an abundance of
ldappool packages getting installed, even in the 'source' case.
This seems to have also kept ldappool at a lower version because
it did not get updated via pip later.
This patch deals with that and also moves ldap deps for Keystone
to their proper place in 'source' case (extras).
Note Keystone client gets installed in openstack-base.

Cinder does not need to include Keystone either.

[1] https://review.opendev.org/744037

Change-Id: I017d7a6a5d2b1ae6c04556dcf172453a36de5be7
2020-08-11 19:07:09 +02:00

339 lines
9.3 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.enable_extra_repos(['opstools']) }}
{% 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-alembic',
'python3-anyjson',
'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-PyYAML',
'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',
'python3-zaqarclient',
'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-pip',
'python3-psycopg2',
'python3-pymemcache',
'python3-pymysql',
'python3-pyngus',
'python3-redis',
'python3-saharaclient',
'python3-sysv-ipc',
'python3-swiftclient',
'python3-troveclient',
'python3-zake',
'python3-zaqarclient'
] %}
{% 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.install_packages(openstack_base_packages | customizable("packages")) }}
{% block source_install_python_pip %}
{{ macros.get_pip() }}
{% endblock %}
{% set openstack_base_pip_packages = [
'Babel',
'Mako',
'MarkupSafe',
'Paste',
'PasteDeploy',
'PyNaCl',
'PyYAML',
'Routes',
'SQLAlchemy',
'Tempita',
'WebOb',
'WSME',
'alembic',
'amqp',
'anyjson',
'aodhclient',
'appdirs',
'bcrypt',
'cachetools',
'cliff',
'cmd2',
'cryptography',
'contextlib2',
'debtcollector',
'decorator',
'elasticsearch',
'eventlet',
'fasteners',
'funcsigs',
'futurist',
'gnocchiclient',
'greenlet',
'iso8601',
'jinja2',
'jsonpatch',
'jsonpointer',
'jsonschema',
'keystoneauth1',
'keystonemiddleware',
'kombu',
'logutils',
'monotonic',
'mysqlclient',
'netaddr',
'netifaces',
'os-client-config',
'oslo.concurrency',
'oslo.config',
'oslo.context',
'oslo.db',
'oslo.i18n',
'oslo.log',
'oslo.messaging',
'oslo.middleware',
'oslo.policy',
'oslo.serialization',
'oslo.service',
'oslo.utils',
'oslo.vmware',
'osprofiler',
'pbr',
'pecan',
'pika',
'prettytable',
'psutil',
'pycadf',
'pyinotify',
'pymongo',
'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',
'python-zaqarclient',
'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'], constraints = false)}} \
&& virtualenv --system-site-packages /var/lib/kolla/venv
ENV PATH /var/lib/kolla/venv/bin:$PATH
RUN {{ 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 %}