kolla-ansible/docker/openstack-base/Dockerfile.j2
Paul Bourke b41247c656 Add header blocks to all Dockerfiles
Change needed to add header blocks to all Dockerfiles, similar to the
base.

Use case is to easily run something before packages are installed, e.g.
to COPY a local rpm in that can be added to the package list.

Change-Id: I1bbfdf0b762da0a392aa8bf47781315b45377bee
Closes-Bug: 1618969
2016-09-13 16:53:31 +01:00

348 lines
9.6 KiB
Django/Jinja

FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
MAINTAINER {{ maintainer }}
{% block openstack_base_header %}{% endblock %}
{% import "macros.j2" as macros with context %}
{% if base_distro in ['fedora', '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 ['fedora', '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',
'Percona-Server-shared-56',
'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-barbicanclient',
'python-beaker',
'python-cachetools',
'python-ceilometerclient',
'python-cliff',
'python-cmd2',
'python-congressclient',
'python-contextlib2',
'python-dateutil',
'python-decorator',
'python-designateclient',
'python-dogpile-cache',
'python-editor',
'python-enum34',
'python-extras',
'python-fixtures',
'python-futures',
'python-glanceclient',
'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-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'
] %}
{% elif base_distro in ['ubuntu'] %}
# This will prevent questions from being asked during the install
ENV DEBIAN_FRONTEND noninteractive
{% set openstack_base_packages = [
'python-barbicanclient',
'python-ceilometerclient',
'python-congressclient',
'python-designateclient',
'python-heatclient',
'python-ironicclient',
'python-magnumclient',
'python-manilaclient',
'python-memcache',
'python-mistralclient',
'python-muranoclient',
'python-pip',
'python-saharaclient',
'python-swiftclient',
'python-troveclient',
'python-zaqarclient',
'python-openstackclient',
'python-pymysql',
'python-keystoneclient',
'python-oslo.log',
'openssl',
'patch'
] %}
{% endif %}
{{ macros.install_packages(openstack_base_packages | customizable("packages")) }}
{% elif install_type == 'source' %}
{% if base_distro in ['fedora', 'centos', 'oraclelinux', 'rhel'] %}
{% set openstack_base_packages = [
'gcc',
'gcc-c++',
'libffi-devel',
'libxml2-devel',
'libxslt-devel',
'libyaml-devel',
'MariaDB-devel',
'openldap-devel',
'openssl-devel',
'postgresql',
'postgresql-devel',
'python-devel',
'sqlite-devel',
'zip'
] %}
{% elif base_distro in ['ubuntu', 'debian'] %}
{% set openstack_base_packages = [
'ca-certificates',
'build-essential',
'python-dev',
'libssl-dev',
'libmariadbclient-dev',
'libxslt1-dev',
'libffi-dev',
'libxml2-dev',
'libyaml-dev',
'libz-dev',
'pkg-config',
'git',
'zip'
] %}
{% 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 %}
ADD openstack-base-archive /openstack-base-source
RUN ln -s openstack-base-source/* /requirements \
&& mkdir -p /var/lib/kolla \
&& pip --no-cache-dir install -U virtualenv \
&& virtualenv --system-site-packages /var/lib/kolla/venv \
&& /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt \
Babel \
Mako \
MarkupSafe \
Paste \
PasteDeploy \
PyYAML \
Routes \
SQLAlchemy \
Tempita \
WebOb \
alembic \
amqp \
anyjson \
appdirs \
cachetools \
cliff \
cmd2 \
contextlib2 \
debtcollector \
decorator \
enum34 \
eventlet \
fasteners \
funcsigs \
functools32 \
futures \
futurist \
greenlet \
iso8601 \
jinja2 \
jsonpatch \
jsonpointer \
jsonschema \
keystoneauth1 \
keystonemiddleware \
kombu \
monotonic \
msgpack-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 \
pbr \
pika \
pika-pool \
positional \
prettytable \
pycadf \
pycrypto \
pyinotify \
pymysql \
pyparsing \
python-barbicanclient \
python-ceilometerclient \
python-cinderclient \
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
ENV PATH /var/lib/kolla/venv/bin:$PATH
{% endif %}
{% block openstack_base_footer %}{% endblock %}
{% block footer %}{% endblock %}