kolla/docker/openstack-base/Dockerfile.j2
Bertrand Lallau c79739b8ac Add Elasticsearch client package for OSprofile
OSprofile allows user/devs trace OpenStack requests.
OSprofiler is multi drivers support.
The simpler centralized system to use is Elasticsearch.
To allow Openstack services to store traces in Elasticsearch,
Elasticsearch client has to be installed in Docker Openstack-base image.

Change-Id: I1546c03603676b5e29ea56dacecb510e29bbf6f6
Implements: blueprint enable-osprofiler
2017-05-17 10:25:57 +02:00

403 lines
12 KiB
Django/Jinja

FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
{% block openstack_base_header %}{% endblock %}
{% import "macros.j2" as macros with context %}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
{% set openstack_base_packages = [
'git',
'iproute',
'openssl'
] %}
{{ macros.install_packages(openstack_base_packages) }}
{% endif %}
{% if install_type == 'binary' %}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
# TODO(Allen) Remove python-dogpile-cache after the requirement of
# python-ironicclient is fixed.
{% set openstack_base_packages = [
'avahi-libs',
'cups-libs',
'fontconfig',
'fontpackages-filesystem',
'freetype',
'initscripts',
'libjpeg-turbo',
'libpng',
'libtomcrypt',
'libtommath',
'libX11',
'libX11-common',
'libXau',
'libxcb',
'libXext',
'libXi',
'libxslt',
'libyaml',
'MySQL-python',
'pyOpenSSL',
'pyparsing',
'python2-cffi',
'python2-crypto',
'python2-cryptography',
'python2-debtcollector',
'python2-eventlet',
'python2-fasteners',
'python2-funcsigs',
'python2-futurist',
'python2-greenlet',
'python2-iso8601',
'python2-msgpack',
'python2-oslo-concurrency',
'python2-oslo-config',
'python2-oslo-context',
'python2-oslo-db',
'python2-oslo-i18n',
'python2-oslo-log',
'python2-oslo-messaging',
'python2-oslo-middleware',
'python2-oslo-policy',
'python2-oslo-serialization',
'python2-oslo-service',
'python2-oslo-utils',
'python2-pika',
'python2-pika_pool',
'python2-positional',
'python2-pyasn1',
'python2-PyMySQL',
'python-alembic',
'python-amqp',
'python-anyjson',
'python-aodhclient',
'python-barbicanclient',
'python-beaker',
'python-cachetools',
'python-ceilometerclient',
'python-cliff',
'python-cloudkittyclient',
'python-cmd2',
'python-congressclient',
'python-contextlib2',
'python-dateutil',
'python-decorator',
'python-designateclient',
'python-dogpile-cache',
'python-editor',
'python-elasticsearch',
'python-enum34',
'python-extras',
'python-fixtures',
'python-futures',
'python-glanceclient',
'python-gnocchiclient',
'python-heatclient',
'python-httplib2',
'python-idna',
'python-inotify',
'python-ipaddress',
'python-ironicclient',
'python-jsonpatch',
'python-jsonpointer',
'python-jsonschema',
'python-keyring',
'python-keystoneauth1',
'python-keystoneclient',
'python-keystonemiddleware',
'python-kombu',
'python-linecache2',
'python-lxml',
'python-magnumclient',
'python-mako',
'python-manilaclient',
'python-memcached',
'python-migrate',
'python-mimeparse',
'python-mistralclient',
'python-monotonic',
'python-muranoclient',
'python-netaddr',
'python-netifaces',
'python-neutronclient',
'python-novaclient',
'python-openstackclient',
'python-osprofiler',
'python-paste',
'python-paste-deploy',
'python-pbr',
'python-pip',
'python-ply',
'python-posix_ipc',
'python-prettytable',
'python-pycparser',
'python-PyMySQL',
'python-repoze-lru',
'python-requests',
'python-retrying',
'python-routes',
'python-saharaclient',
'python-simplejson',
'python-sqlalchemy',
'python-sqlparse',
'python-stevedore',
'python-swiftclient',
'python-tempita',
'python-testtools',
'python-traceback2',
'python-troveclient',
'python-unicodecsv',
'python-unittest2',
'python-urllib3',
'python-warlock',
'python-webob',
'python-wrapt',
'python-zaqarclient',
'PyYAML',
'systemd-sysv',
'sysvinit-tools',
'tcp_wrappers-libs'
] %}
{% if base_arch == 'x86_64' %}
{% set openstack_base_packages = openstack_base_packages + [
'Percona-Server-shared-56'
] %}
{% endif %}
{% elif base_distro in ['debian', 'ubuntu'] %}
# This will prevent questions from being asked during the install
ENV DEBIAN_FRONTEND noninteractive
{% set openstack_base_packages = [
'openssl',
'patch',
'python-aodhclient',
'python-barbicanclient',
'python-ceilometerclient',
'python-congressclient',
'python-designateclient',
'python-elasticsearch',
'python-gnocchiclient',
'python-heatclient',
'python-ironicclient',
'python-keystoneclient',
'python-magnumclient',
'python-manilaclient',
'python-memcache',
'python-mistralclient',
'python-muranoclient',
'python-mysqldb',
'python-openstackclient',
'python-oslo.log',
'python-osprofiler',
'python-pip',
'python-pymysql',
'python-saharaclient',
'python-swiftclient',
'python-troveclient',
'python-zaqarclient'
] %}
{% endif %}
{{ macros.install_packages(openstack_base_packages | customizable("packages")) }}
{% elif install_type == 'source' %}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
{% set openstack_base_packages = [
'gcc',
'gcc-c++',
'libffi-devel',
'libxml2-devel',
'libxslt-devel',
'libyaml-devel',
'openldap-devel',
'openssl-devel',
'postgresql',
'postgresql-devel',
'python-devel',
'sqlite-devel',
'zip'
] %}
# On x86-64 packages from external repos are used. lowercase names goes
# conflicts and build fails. Other architectures use standard CentOS
# packages.
{% if base_arch == 'x86_64' %}
{% set openstack_base_packages = openstack_base_packages + [
'MariaDB-devel'
] %}
{% else %}
{% set openstack_base_packages = openstack_base_packages + [
'mariadb-devel'
] %}
{% endif %}
{% elif base_distro in ['debian', 'ubuntu'] %}
{% set openstack_base_packages = [
'build-essential',
'ca-certificates',
'git',
'libffi-dev',
'libssl-dev',
'libxml2-dev',
'libxslt1-dev',
'libyaml-dev',
'libz-dev',
'pkg-config',
'python-dev',
'zip'
] %}
{% if base_arch == 'aarch64' and base_distro == 'ubuntu' %}
{% set openstack_base_packages = openstack_base_packages + [
'libmysqlclient-dev'
] %}
{% else %}
{% set openstack_base_packages = openstack_base_packages + [
'libmariadbclient-dev'
] %}
{% endif %}
# Debian/stretch ships libmysqlclient.so in separate package
{% if base_distro == 'debian' %}
{% set openstack_base_packages = openstack_base_packages + [
'libmariadbclient-dev-compat'
] %}
{% endif %}
{% endif %}
{{ macros.install_packages(openstack_base_packages | customizable("packages")) }}
{% block source_install_python_pip %}
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \
&& python get-pip.py \
&& rm get-pip.py
{% endblock %}
{% set openstack_base_pip_packages = [
'Babel',
'Mako',
'MarkupSafe',
'Paste',
'PasteDeploy',
'PyYAML',
'Routes',
'SQLAlchemy',
'Tempita',
'WebOb',
'alembic',
'amqp',
'anyjson',
'aodhclient',
'appdirs',
'cachetools',
'cliff',
'cmd2',
'contextlib2',
'debtcollector',
'decorator',
'elasticsearch',
'enum34',
'eventlet',
'fasteners',
'funcsigs',
'functools32',
'futures',
'futurist',
'gnocchiclient',
'greenlet',
'iso8601',
'jinja2',
'jsonpatch',
'jsonpointer',
'jsonschema',
'keystoneauth1',
'keystonemiddleware',
'kombu',
'monotonic',
'msgpack-python',
'MySQL-python',
'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',
'pika',
'pika-pool',
'positional',
'prettytable',
'pycadf',
'pycrypto',
'pyinotify',
'pymysql',
'pyparsing',
'python-barbicanclient',
'python-ceilometerclient',
'python-cinderclient',
'python-cloudkittyclient',
'python-congressclient',
'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-saharaclient',
'python-swiftclient',
'python-troveclient',
'python-zaqarclient',
'pytz',
'repoze.lru',
'requests',
'requestsexceptions',
'retrying',
'simplejson',
'six',
'sqlalchemy-migrate',
'sqlparse',
'stevedore',
'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 %}
{% block openstack_base_footer %}{% endblock %}