kolla/docker/base/Dockerfile.j2

201 lines
6.4 KiB
Django/Jinja

FROM {{ base_distro }}:{{ base_distro_tag }}
MAINTAINER Kolla Project (https://launchpad.net/kolla)
{{ include_header }}
ENV KOLLA_BASE_DISTRO {{ base_distro }}
ENV KOLLA_INSTALL_TYPE {{ install_type }}
{% if base_distro in ['fedora', 'centos', 'oraclelinux'] %}
# Turns on galera repos throughout the build
COPY mariadb.yum.repo /etc/yum.repos.d/MariaDB.repo
RUN yum install -y http://www.percona.com/redir/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm \
&& sed -i 's|$releasever|centos/latest|g' /etc/yum.repos.d/percona-release.repo
{% if install_type == 'binary' %}
{% if base_distro in ['centos', 'oraclelinux'] %}
# Set up repositories
# This repository provides all dependencies used by RDO OpenStack
RUN yum install -y https://rdoproject.org/repos/openstack-kilo/rdo-release-kilo.rpm
# This repository provides latest packages built from trunk master into RPMs
RUN curl http://trunk.rdoproject.org/centos7/current/delorean.repo -o /etc/yum.repos.d/delorean-current.repo
{% if base_distro == 'centos' %}
# CentOS 7.1 workaround for conflicting packages with libvirt
RUN rpm -e --nodeps systemd-container systemd-container-libs \
&& rpm -e --nodeps yum-plugin-fastestmirror \
&& yum -d 10 -y install systemd systemd-libs systemd-devel \
&& yum clean all
{% endif %}
{% if base_distro == 'oraclelinux' %}
RUN yum install -y \
yum-utils \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \
&& yum clean all
RUN yum-config-manager --enable ol7_optional_latest ol7_addons
{% endif %}
# Endif for base_distro centos/oraclelinux
{% elif base_distro == 'fedora' %}
# Set up repositories
RUN yum install -y https://rdo.fedorapeople.org/rdo-release.rpm \
&& yum -y install dnf dnf-plugins-core \
&& yum clean all
# Endif for base_distro fedora
{% endif %}
# Update packages
RUN yum update -y \
&& yum install -y epel-release \
&& yum clean all
# Install base packages
RUN yum install -y \
git \
iproute \
mariadb-libs \
MySQL-python \
openssl \
openstack-utils \
pyparsing \
python-alembic \
python-amqp \
python-amqplib \
python-anyjson \
python-boto \
python-cheetah \
python-cliff \
python-cmd2 \
python-croniter \
python-crypto \
python-d2to1 \
python-docutils \
python-dogpile-cache \
python-dogpile-core \
python-empy \
python-eventlet \
python-flask \
python-futures \
python-greenlet \
python-httplib2 \
python-iso8601 \
python-itsdangerous \
python-jinja2 \
python-jsonpatch \
python-jsonpath-rw \
python-jsonpointer \
python-jsonschema \
python-keyring \
python-kombu \
python-ldap \
python-lesscpy \
python-lockfile \
python-lxml \
python-markdown \
python-memcached \
python-migrate \
python-msgpack \
python-netifaces \
python-networkx \
python-oauthlib \
python-openstackclient \
python-oslo-config \
python-oslo-messaging \
python-oslo-rootwrap \
python-oslo-policy \
python-paramiko \
python-passlib \
python-paste-deploy \
python-pbr \
python-pecan \
python-pip \
python-ply \
python-prettytable \
python-psutil \
python-pycadf \
python-pygments \
python-pymongo \
python-qpid \
python-repoze-lru \
python-requests \
python-routes \
python-simplegeneric \
python-simplejson \
python-singledispatch \
python-six \
python-sqlalchemy \
python-stevedore \
python-taskflow \
python-versiontools \
python-warlock \
python-webob \
python-websockify \
python-webtest \
python-werkzeug \
python-wsme \
&& yum clean all
# Endif for install_type binary
{% elif install_type == 'source' %}
# Update packages
RUN yum update -y \
&& yum install -y \
epel-release \
gcc \
gcc-c++ \
git \
libffi-devel \
libxml2-devel \
libxslt-devel \
mariadb-devel \
mysql-devel \
openldap-devel \
openssl \
openssl-devel \
postgresql \
postgresql-devel \
python-devel \
python-oslo-policy \
sqlite-devel \
tar \
&& yum clean all
# Endif for install_type source
{% endif %}
# Endif for base_distro centos,fedora,oraclelinux
{% elif base_distro in ['ubuntu', 'debian'] %}
# This will prevent questions from being asked during the install
ENV DEBIAN_FRONTEND noninteractive
COPY sources.list /etc/apt/
RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com 199369E5404BD5FC7D2FE43BCBCB082A1BB943DB \
&& apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com 391A9AA2147192839E9DB0315EDB1B62EC4926EA \
&& apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com F78372A06FF50C80464FC1B4F7B8CEA6056E8E56 \
&& apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com 430BDF5C56E7C94E848EE60C1C4CBDCDCD2EFD2A \
&& apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com 7D5C473EB80C00FC133071068A6844A29F68104E \
&& apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com 7F6C9F236D170493FCF404F27EBFDD5D17ED316D \
&& apt-get update \
&& apt-get upgrade -y \
&& apt-get dist-upgrade -y \
&& apt-get install -y --no-install-recommends python \
&& apt-get clean \
&& sed -i "s|'purelib': '\$base/local/lib/python\$py_version_short/dist-packages',|'purelib': '\$base/lib/python\$py_version_short/dist-packages',|;s|'platlib': '\$platbase/local/lib/python\$py_version_short/dist-packages',|'platlib': '\$platbase/lib/python\$py_version_short/dist-packages',|;s|'headers': '\$base/local/include/python\$py_version_short/\$dist_name',|'headers': '\$base/include/python\$py_version_short/\$dist_name',|;s|'scripts': '\$base/local/bin',|'scripts': '\$base/bin',|;s|'data' : '\$base/local',|'data' : '\$base',|" /usr/lib/python2.7/distutils/command/install.py \
&& rm -rf /usr/lib/python2.7/site-packages \
&& ln -s dist-packages /usr/lib/python2.7/site-packages
{% endif %}
COPY kolla-common.sh /opt/kolla/