kolla-ansible/docker/openstack-base/Dockerfile.j2
SamYaple 0da25415f8 Increase usefulness of openstack-base
Just like last cycle, I ran all of the requirements and found the
packages that were installed >=10 times throughout our containers. By
combining them in the openstack-base we reduce the size of the images
by ~600MB (10%) and decrease build time by a measurable amount (5-10m
in the case of Centos)

TrivialFix
Change-Id: I582d75644a8e8b936c6f9fc10c6b5821e1e8c5c4
2016-03-19 17:41:11 +00:00

219 lines
5.4 KiB
Django/Jinja

FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
MAINTAINER {{ maintainer }}
{% if base_distro in ['fedora', 'centos', 'oraclelinux', 'rhel'] %}
RUN yum -y install \
git \
iproute \
openssl \
&& yum clean all
{% 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.
RUN yum -y install \
python-barbicanclient \
python-ceilometerclient \
python-congressclient \
python-designateclient \
python-heatclient \
python-dogpile-cache \
python-ironicclient \
python-magnumclient \
python-manilaclient \
python-mistralclient \
python-muranoclient \
python-PyMySQL \
python-pip \
python-saharaclient \
python-swiftclient \
python-troveclient \
python-tuskarclient \
python-zaqarclient \
python-openstackclient \
python-keystoneauth1 \
&& yum clean all
{% elif base_distro in ['ubuntu'] %}
# This will prevent questions from being asked during the install
ENV DEBIAN_FRONTEND noninteractive
# There is no python-tuskarclient in ubuntu 14.04
RUN apt-get install -y --no-install-recommends \
python-barbicanclient \
python-ceilometerclient \
python-congressclient \
python-designateclient \
python-heatclient \
python-ironicclient \
python-magnumclient \
python-manilaclient \
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 \
&& apt-get clean
{% endif %}
{% elif install_type == 'source' %}
{% if base_distro in ['fedora', 'centos', 'oraclelinux', 'rhel'] %}
RUN yum -y install \
gcc \
gcc-c++ \
libffi-devel \
libxml2-devel \
libxslt-devel \
MariaDB-devel \
openldap-devel \
openssl-devel \
postgresql \
postgresql-devel \
python-devel \
sqlite-devel \
&& yum clean all
{% elif base_distro in ['ubuntu', 'debian'] %}
RUN apt-get install -y --no-install-recommends \
ca-certificates \
build-essential \
python-dev \
libssl-dev \
libmariadbclient-dev \
libxslt1-dev \
libffi-dev \
libyaml-dev \
pkg-config \
git \
&& apt-get clean
{% endif %}
ADD openstack-base-archive /openstack-base-source
RUN ln -s openstack-base-source/* /requirements \
&& mkdir -p /var/lib/kolla \
&& curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \
&& python get-pip.py \
&& rm get-pip.py \
&& 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 \
kazoo \
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-tuskarclient \
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 %}