/docker/base/Dockerfile.j2
Jinja | 231 lines | 168 code | 53 blank | 10 comment | 10 complexity | 6b2a2f605c5b89023c4f40f9c181b023 MD5 | raw file
- FROM {{ base_distro }}:{{ base_distro_tag }}
- MAINTAINER {{ maintainer }}
- LABEL kolla_version="{{ kolla_version }}"
- {{ include_header }}
- ENV KOLLA_BASE_DISTRO {{ base_distro }}
- ENV KOLLA_INSTALL_TYPE {{ install_type }}
- ENV KOLLA_INSTALL_METATYPE {{ install_metatype }}
- #### Customize PS1 to be used with bash shell
- COPY kolla_bashrc /tmp/
- RUN cat /tmp/kolla_bashrc >> /etc/skel/.bashrc
- RUN cat /tmp/kolla_bashrc >> /root/.bashrc
- # PS1 var when used /bin/sh shell
- ENV PS1="$(tput bold)($(printenv KOLLA_SERVICE_NAME))$(tput sgr0)[$(id -un)@$(hostname -s) $(pwd)]$ "
- # 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 :)
- {% if base_distro in ['fedora', 'centos', 'oraclelinux', 'rhel'] %}
- # Customize PS1 bash shell
- RUN cat /tmp/kolla_bashrc >> /etc/bashrc
- #### BEGIN REPO ENABLEMENT
- # Turns on Elasticsearch repos
- COPY elasticsearch.yum.repo /etc/yum.repos.d/elasticsearch.repo
- # Turns on Kibana repo
- COPY kibana.yum.repo /etc/yum.repos.d/kibana.yum.repo
- # Turns on MariaDB repos throughout the RPM build
- COPY mariadb.yum.repo /etc/yum.repos.d/MariaDB.repo
- RUN yum -y install http://repo.percona.com/release/7/RPMS/x86_64/percona-release-0.1-3.noarch.rpm
- RUN rpm --import http://yum.mariadb.org/RPM-GPG-KEY-MariaDB \
- && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-Percona \
- && rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
- {% if install_metatype in ['rdo', 'mixed'] %}
- {% for cmd in rpm_setup %}
- {{ cmd }}
- {% endfor %}
- {% endif %}
- {# endif for repo setup for all RHEL except RHEL OSP #}
- {% if install_metatype == 'rhos' %}
- # Turn on the RHOS 7.0 repo for RHOS
- RUN yum-config-manager --enable rhel-7-server-rpms \
- && yum-config-manager --enable rhel-7-server-openstack-7.0-rpms
- {% endif %}
- {% if base_distro == 'centos' %}
- RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 \
- && yum install -y \
- epel-release \
- yum-plugin-priorities \
- centos-release-ceph-hammer \
- centos-release-qemu-ev \
- && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 \
- && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage \
- && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Virtualization \
- && yum clean all
- {% endif %}
- {# Endif for base_distro centos #}
- {% if base_distro == 'rhel' %}
- # Enable couple required repositories for all RHEL builds
- # Turn on EPEL throughout the build
- RUN yum install -y \
- https://mirror.centos.org/centos-7/7/extras/x86_64/Packages/epel-release-7-5.noarch.rpm \
- && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 \
- && yum -y install yum-plugin-priorities \
- && yum clean all \
- && yum-config-manager --enable rhel-7-server-optional-rpms \
- && yum-config-manager --enable rhel-7-server-extras-rpms
- {% endif %}
- {# Endif for base_distro RHEL #}
- {% if base_distro == 'oraclelinux' %}
- COPY oraclelinux-extras.repo /etc/yum.repos.d/oraclelinux-extras.repo
- RUN yum install -y \
- tar \
- yum-utils \
- http://mirror.centos.org/centos-7/7/extras/x86_64/Packages/epel-release-7-5.noarch.rpm \
- && yum clean all \
- && rpm -Uvh --nodeps \
- http://mirror.centos.org/centos/7/extras/x86_64/Packages/centos-release-openstack-mitaka-1-2.el7.centos.noarch.rpm \
- http://mirror.centos.org/centos-7/7/extras/x86_64/Packages/centos-release-ceph-hammer-1.0-5.el7.centos.noarch.rpm \
- http://mirror.centos.org/centos-7/7/extras/x86_64/Packages/centos-release-qemu-ev-1.0-1.el7.noarch.rpm \
- http://mirror.centos.org/centos-7/7/extras/x86_64/Packages/centos-release-virt-common-1-1.el7.centos.noarch.rpm \
- http://mirror.centos.org/centos-7/7/extras/x86_64/Packages/centos-release-storage-common-1-2.el7.centos.noarch.rpm \
- && sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS-*.repo \
- && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 \
- && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage \
- && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Virtualization
- RUN yum-config-manager --enable ol7_optional_latest ol7_addons
- RUN yum install -y yum-plugin-priorities \
- && yum clean all
- {% endif %}
- {# Endif for base_distro oraclelinux #}
- {% if 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 -y install yum-plugin-priorities \
- && yum clean all
- {% endif %}
- {# Endif for base_distro fedora #}
- #### END REPO ENABLEMENT
- {# We are back to the basic if conditional here which is:
- if base_distro in ['fedora', 'centos', 'oraclelinux', 'rhel'] #}
- RUN yum update -y \
- && yum clean all
- # Pin package versions
- RUN yum install -y \
- yum-plugin-versionlock \
- && yum clean all
- COPY versionlock.list /etc/yum/pluginconf.d/
- {% if install_type == 'binary' %}
- # Install base packages
- RUN yum install -y \
- sudo \
- which \
- python \
- python-jinja2 \
- python-kazoo \
- python-six \
- lvm2 \
- scsi-target-utils \
- iscsi-initiator-utils \
- && yum clean all
- {% endif %}
- {# Endif for install_type binary #}
- {% if install_type == 'source' %}
- # Update packages
- RUN yum -y install \
- curl \
- python-jinja2 \
- python-kazoo \
- python-six \
- sudo \
- tar \
- which \
- lvm2 \
- scsi-target-utils \
- iscsi-initiator-utils \
- && yum clean all
- {% endif %}
- {# endif for install type is source for RPM based distros #}
- {# endif for base_distro centos,fedora,oraclelinux,rhel #}
- {% elif base_distro in ['ubuntu', 'debian'] %}
- # Customize PS1 bash shell
- RUN cat /tmp/kolla_bashrc >> /etc/bash.bashrc
- # This will prevent questions from being asked during the install
- ENV DEBIAN_FRONTEND noninteractive
- COPY sources.list /etc/apt/
- COPY apt_preferences /etc/apt/preferences
- 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 \
- && apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 46095ACC8548582C1A2699A9D27D666CD88E42B4 \
- && apt-get update \
- && apt-get upgrade -y \
- && apt-get dist-upgrade -y \
- && apt-get install -y --no-install-recommends \
- ca-certificates \
- python \
- python-jinja2 \
- python-kazoo \
- python-six \
- curl \
- open-iscsi \
- tgt \
- lvm2 \
- && 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 set_configs.py /usr/local/bin/kolla_set_configs
- COPY start.sh /usr/local/bin/kolla_start
- COPY sudoers /etc/sudoers
- RUN touch /usr/local/bin/kolla_extend_start \
- && 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
- RUN rm -f /tmp/kolla_bashrc
- CMD ["kolla_start"]