2015-08-07 04:36:20 +02:00
|
|
|
|
FROM {{ base_distro }}:{{ base_distro_tag }}
|
2015-11-23 12:38:58 +05:30
|
|
|
|
MAINTAINER {{ maintainer }}
|
2015-08-07 04:36:20 +02:00
|
|
|
|
|
2015-12-16 10:49:46 -06:00
|
|
|
|
LABEL kolla_version="{{ kolla_version }}"
|
|
|
|
|
|
2015-09-27 08:10:59 +00:00
|
|
|
|
|
2015-08-20 21:59:16 +02:00
|
|
|
|
{{ include_header }}
|
|
|
|
|
|
2015-08-23 03:45:03 +00:00
|
|
|
|
ENV KOLLA_BASE_DISTRO {{ base_distro }}
|
|
|
|
|
ENV KOLLA_INSTALL_TYPE {{ install_type }}
|
2015-09-17 09:35:33 -07:00
|
|
|
|
ENV KOLLA_INSTALL_METATYPE {{ install_metatype }}
|
2015-08-23 03:45:03 +00:00
|
|
|
|
|
2015-09-12 18:34:55 -07:00
|
|
|
|
# For RPM Variants, enable the correct repositories - this should all be done
|
|
|
|
|
# in the base image so repos are consistent throughout the system. This also
|
|
|
|
|
# enables to provide repo overrides at a later date in a simple fashion if we
|
|
|
|
|
# desire such functionality. I think we will :)
|
|
|
|
|
|
2015-09-04 03:17:00 -07:00
|
|
|
|
{% if base_distro in ['fedora', 'centos', 'oraclelinux', 'rhel'] %}
|
2015-08-27 20:37:59 -07:00
|
|
|
|
|
2015-09-12 18:34:55 -07:00
|
|
|
|
#### BEGIN REPO ENABLEMENT
|
2016-01-14 11:06:29 +01:00
|
|
|
|
# Turns on Elasticsearch repos
|
|
|
|
|
COPY elasticsearch.yum.repo /etc/yum.repos.d/elasticsearch.repo
|
2015-09-12 18:34:55 -07:00
|
|
|
|
|
|
|
|
|
# Turns on MariaDB repos throughout the RPM build
|
2015-08-27 20:37:59 -07:00
|
|
|
|
COPY mariadb.yum.repo /etc/yum.repos.d/MariaDB.repo
|
|
|
|
|
|
2015-10-13 03:56:20 -04:00
|
|
|
|
COPY ceph.yum.repo /etc/yum.repos.d/ceph.repo
|
|
|
|
|
|
2015-10-23 02:54:02 -07:00
|
|
|
|
RUN yum -y install http://repo.percona.com/release/7/RPMS/x86_64/percona-release-0.1-3.noarch.rpm
|
2015-08-27 20:37:59 -07:00
|
|
|
|
|
2016-01-20 17:04:05 +08:00
|
|
|
|
RUN rpm --import http://yum.mariadb.org/RPM-GPG-KEY-MariaDB \
|
2016-01-11 21:25:53 +08:00
|
|
|
|
&& rpm --import https://download.ceph.com/keys/release.asc \
|
2016-01-14 11:06:29 +01:00
|
|
|
|
&& rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-Percona \
|
|
|
|
|
&& rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
|
2015-12-11 10:56:51 +08:00
|
|
|
|
|
2015-10-21 04:53:36 -04:00
|
|
|
|
{% if install_metatype in ['rdo', 'mixed'] %}
|
2015-08-07 04:36:20 +02:00
|
|
|
|
|
2015-12-15 12:05:39 -05:00
|
|
|
|
{% for cmd in rpm_setup %}
|
|
|
|
|
{{ cmd }}
|
|
|
|
|
{% endfor %}
|
2015-08-07 04:36:20 +02:00
|
|
|
|
|
2015-09-12 18:34:55 -07:00
|
|
|
|
{% endif %}
|
2015-12-02 17:53:52 +08:00
|
|
|
|
{# endif for repo setup for all RHEL except RHEL OSP #}
|
2015-09-12 18:34:55 -07:00
|
|
|
|
|
|
|
|
|
{% if install_metatype == 'rhos' %}
|
|
|
|
|
|
|
|
|
|
# Turn on the RHOS 7.0 repo for RHOS
|
2015-11-03 23:30:35 -05:00
|
|
|
|
RUN yum-config-manager --enable rhel-7-server-rpms \
|
|
|
|
|
&& yum-config-manager --enable rhel-7-server-openstack-7.0-rpms
|
2015-09-12 18:34:55 -07:00
|
|
|
|
|
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
|
|
{% if base_distro == 'centos' %}
|
|
|
|
|
|
2015-12-24 11:04:23 +08:00
|
|
|
|
RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 \
|
|
|
|
|
&& yum install -y epel-release yum-plugin-priorities \
|
2015-12-11 10:56:51 +08:00
|
|
|
|
&& rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 \
|
2015-08-07 04:36:20 +02:00
|
|
|
|
&& yum clean all
|
|
|
|
|
|
2015-09-12 18:34:55 -07:00
|
|
|
|
{% endif %}
|
2015-12-02 17:53:52 +08:00
|
|
|
|
{# Endif for base_distro centos #}
|
2015-09-12 18:34:55 -07:00
|
|
|
|
|
|
|
|
|
{% if base_distro == 'rhel' %}
|
|
|
|
|
|
|
|
|
|
# Enable couple required repositories for all RHEL builds
|
|
|
|
|
# Turn on EPEL throughout the build
|
|
|
|
|
RUN yum install -y \
|
|
|
|
|
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \
|
2015-12-11 10:56:51 +08:00
|
|
|
|
&& rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 \
|
2015-11-26 17:27:34 -05:00
|
|
|
|
&& yum -y install yum-plugin-priorities \
|
2015-09-12 18:34:55 -07:00
|
|
|
|
&& yum clean all \
|
2015-11-03 23:30:35 -05:00
|
|
|
|
&& yum-config-manager --enable rhel-7-server-optional-rpms \
|
|
|
|
|
&& yum-config-manager --enable rhel-7-server-extras-rpms
|
2015-09-12 18:34:55 -07:00
|
|
|
|
|
|
|
|
|
{% endif %}
|
2015-12-02 17:53:52 +08:00
|
|
|
|
{# Endif for base_distro RHEL #}
|
2015-09-12 18:34:55 -07:00
|
|
|
|
|
|
|
|
|
{% if base_distro == 'oraclelinux' %}
|
|
|
|
|
|
2015-08-19 16:58:12 +00:00
|
|
|
|
RUN yum install -y \
|
|
|
|
|
yum-utils \
|
|
|
|
|
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \
|
2015-12-11 10:56:51 +08:00
|
|
|
|
&& rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 \
|
2015-08-19 16:58:12 +00:00
|
|
|
|
&& yum clean all
|
|
|
|
|
RUN yum-config-manager --enable ol7_optional_latest ol7_addons
|
2015-11-26 17:27:34 -05:00
|
|
|
|
RUN yum install -y yum-plugin-priorities
|
2015-08-19 16:58:12 +00:00
|
|
|
|
|
2015-09-12 18:34:55 -07:00
|
|
|
|
{% endif %}
|
2015-12-02 17:53:52 +08:00
|
|
|
|
{# Endif for base_distro oraclelinux #}
|
2015-09-12 18:34:55 -07:00
|
|
|
|
|
|
|
|
|
{% if base_distro == 'fedora' %}
|
2015-08-07 04:36:20 +02:00
|
|
|
|
|
|
|
|
|
# Set up repositories
|
|
|
|
|
RUN yum install -y https://rdo.fedorapeople.org/rdo-release.rpm \
|
|
|
|
|
&& yum -y install dnf dnf-plugins-core \
|
2015-11-26 17:27:34 -05:00
|
|
|
|
&& yum -y install yum-plugin-priorities \
|
2015-08-30 07:47:09 +00:00
|
|
|
|
&& yum clean all
|
2015-08-07 04:36:20 +02:00
|
|
|
|
|
2015-09-12 18:34:55 -07:00
|
|
|
|
{% endif %}
|
2015-12-02 17:53:52 +08:00
|
|
|
|
{# Endif for base_distro fedora #}
|
2015-09-12 18:34:55 -07:00
|
|
|
|
|
|
|
|
|
#### END REPO ENABLEMENT
|
|
|
|
|
|
2015-12-02 17:53:52 +08:00
|
|
|
|
{# We are back to the basic if conditional here which is:
|
|
|
|
|
if base_distro in ['fedora', 'centos', 'oraclelinux', 'rhel'] #}
|
2015-08-07 04:36:20 +02:00
|
|
|
|
|
|
|
|
|
RUN yum update -y \
|
|
|
|
|
&& yum clean all
|
|
|
|
|
|
2015-11-20 10:39:50 +01:00
|
|
|
|
# Pin package versions
|
|
|
|
|
RUN yum install -y \
|
|
|
|
|
yum-plugin-versionlock \
|
|
|
|
|
&& yum clean all
|
|
|
|
|
COPY versionlock.list /etc/yum/pluginconf.d/
|
|
|
|
|
|
2015-09-12 18:34:55 -07:00
|
|
|
|
{% if install_type == 'binary' %}
|
|
|
|
|
|
2015-08-07 04:36:20 +02:00
|
|
|
|
# Install base packages
|
|
|
|
|
RUN yum install -y \
|
2015-09-12 13:47:24 -07:00
|
|
|
|
sudo \
|
2015-09-12 10:11:55 -07:00
|
|
|
|
which \
|
2015-11-19 15:35:22 +10:00
|
|
|
|
python \
|
|
|
|
|
python-jinja2 \
|
|
|
|
|
python-kazoo \
|
2015-12-07 07:15:37 +01:00
|
|
|
|
python-six \
|
2015-08-07 04:36:20 +02:00
|
|
|
|
&& yum clean all
|
|
|
|
|
|
2015-09-12 18:34:55 -07:00
|
|
|
|
{% endif %}
|
2015-12-02 17:53:52 +08:00
|
|
|
|
{# Endif for install_type binary #}
|
2015-09-12 18:34:55 -07:00
|
|
|
|
|
|
|
|
|
{% if install_type == 'source' %}
|
2015-08-07 04:36:20 +02:00
|
|
|
|
|
|
|
|
|
# Update packages
|
2015-10-06 11:42:52 -07:00
|
|
|
|
RUN yum -y install \
|
|
|
|
|
curl \
|
2016-01-11 15:30:16 +00:00
|
|
|
|
python-jinja2 \
|
2015-12-11 11:06:37 +08:00
|
|
|
|
python-kazoo \
|
|
|
|
|
python-six \
|
2015-09-12 13:47:24 -07:00
|
|
|
|
sudo \
|
2015-08-07 04:36:20 +02:00
|
|
|
|
tar \
|
2015-09-12 10:11:55 -07:00
|
|
|
|
which \
|
2015-08-07 04:36:20 +02:00
|
|
|
|
&& yum clean all
|
|
|
|
|
|
2015-09-12 18:34:55 -07:00
|
|
|
|
{% endif %}
|
2015-12-02 17:53:52 +08:00
|
|
|
|
{# endif for install type is source for RPM based distros #}
|
|
|
|
|
{# endif for base_distro centos,fedora,oraclelinux,rhel #}
|
2015-08-07 04:36:20 +02:00
|
|
|
|
{% elif base_distro in ['ubuntu', 'debian'] %}
|
|
|
|
|
|
2015-08-20 14:31:22 +00:00
|
|
|
|
# This will prevent questions from being asked during the install
|
|
|
|
|
ENV DEBIAN_FRONTEND noninteractive
|
|
|
|
|
|
|
|
|
|
COPY sources.list /etc/apt/
|
2015-11-20 10:39:50 +01:00
|
|
|
|
COPY apt_preferences /etc/apt/preferences
|
2015-08-20 14:31:22 +00:00
|
|
|
|
|
2016-01-25 21:54:42 +00:00
|
|
|
|
RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 199369E5404BD5FC7D2FE43BCBCB082A1BB943DB \
|
|
|
|
|
&& apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 391A9AA2147192839E9DB0315EDB1B62EC4926EA \
|
|
|
|
|
&& apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 430BDF5C56E7C94E848EE60C1C4CBDCDCD2EFD2A \
|
|
|
|
|
&& apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 08B73419AC32B4E966C1A330E84AC2C0460F3994 \
|
2016-01-14 11:06:29 +01:00
|
|
|
|
&& apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 46095ACC8548582C1A2699A9D27D666CD88E42B4 \
|
2015-08-07 04:36:20 +02:00
|
|
|
|
&& apt-get update \
|
|
|
|
|
&& apt-get upgrade -y \
|
|
|
|
|
&& apt-get dist-upgrade -y \
|
2015-10-16 06:19:07 +00:00
|
|
|
|
&& apt-get install -y --no-install-recommends \
|
2016-01-26 09:27:15 +01:00
|
|
|
|
ca-certificates \
|
2015-10-16 06:19:07 +00:00
|
|
|
|
python \
|
2015-11-19 15:35:22 +10:00
|
|
|
|
python-jinja2 \
|
|
|
|
|
python-kazoo \
|
2015-12-07 07:15:37 +01:00
|
|
|
|
python-six \
|
2015-10-16 06:19:07 +00:00
|
|
|
|
curl \
|
2015-08-24 15:17:42 +00:00
|
|
|
|
&& 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
|
2015-08-07 04:36:20 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{% endif %}
|
|
|
|
|
|
2015-10-01 07:43:18 +00:00
|
|
|
|
COPY set_configs.py /usr/local/bin/kolla_set_configs
|
2015-09-30 11:23:39 +00:00
|
|
|
|
COPY start.sh /usr/local/bin/kolla_start
|
2015-11-08 16:34:32 -05:00
|
|
|
|
COPY sudoers /etc/sudoers
|
2015-09-30 11:23:39 +00:00
|
|
|
|
RUN touch /usr/local/bin/kolla_extend_start \
|
2015-11-08 16:34:32 -05:00
|
|
|
|
&& chmod 755 /usr/local/bin/kolla_start /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_set_configs \
|
|
|
|
|
&& chmod 440 /etc/sudoers \
|
|
|
|
|
&& groupadd kolla
|
2015-09-30 11:23:39 +00:00
|
|
|
|
|
|
|
|
|
CMD ["kolla_start"]
|