From 4f9ee9f1324fb05eff6be4cf5c4b00f8bb29bf7c Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Thu, 23 Aug 2018 08:22:04 -0400 Subject: Add crane docker image MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Crane is a lightweight 'pull only' container registry implementation. TripleO is aiming to replace our use of docker-distribution with crane for the Undercloud. Co-Authored-By: Martin André Change-Id: I59d9521f99243401d7703a3dedc26b5baed2d595 --- docker/base/Dockerfile.j2 | 1 + docker/base/crane.repo | 7 +++++ docker/crane/Dockerfile.j2 | 68 ++++++++++++++++++++++++++++++++++++++++++++ docker/crane/extend_start.sh | 14 +++++++++ 4 files changed, 90 insertions(+) create mode 100644 docker/base/crane.repo create mode 100644 docker/crane/Dockerfile.j2 create mode 100644 docker/crane/extend_start.sh (limited to 'docker') diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2 index 9826ac765..d91a0cc4b 100644 --- a/docker/base/Dockerfile.j2 +++ b/docker/base/Dockerfile.j2 @@ -57,6 +57,7 @@ COPY yum.conf /etc/yum.conf {% if base_arch == 'x86_64' %} {% set base_yum_repo_files = [ + 'crane.repo', 'elasticsearch.repo', 'grafana.repo', 'influxdb.repo', diff --git a/docker/base/crane.repo b/docker/base/crane.repo new file mode 100644 index 000000000..55d7084d7 --- /dev/null +++ b/docker/base/crane.repo @@ -0,0 +1,7 @@ +# TODO(mandre) Remove when crane is in centos repos +# NOTE python-crane package is not signed +[pulp-2-testing] +name=Pulp 2 Testing +baseurl=https://repos.fedorapeople.org/pulp/pulp/testing/automation/2-master/stage/7Server/$basearch/ +enabled=1 +gpgcheck=0 diff --git a/docker/crane/Dockerfile.j2 b/docker/crane/Dockerfile.j2 new file mode 100644 index 000000000..c9fa12af2 --- /dev/null +++ b/docker/crane/Dockerfile.j2 @@ -0,0 +1,68 @@ +FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block crane_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'rhel'] %} + + {% set crane_packages = [ + 'httpd', + 'mod_ssl', + 'mod_wsgi', + 'mod_xsendfile', + 'python-crane' + ] %} + +{{ macros.install_packages(crane_packages | customizable("packages")) }} + +RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \ + && sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf + + {% else %} +RUN echo 'crane not yet available for {{ base_distro }}' && /bin/false + {% endif %} + +{% elif install_type == 'source' %} + {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + {% set crane_packages = [ + 'httpd', + 'mod_ssl', + 'mod_wsgi', + 'mod_xsendfile', + 'python-flask' + ] %} + +{{ macros.install_packages(crane_packages | customizable("packages")) }} + +RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \ + && sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf + + {% elif base_distro in ['debian', 'ubuntu'] %} +RUN echo 'crane not yet available for {{ base_distro }}' && /bin/false + {% endif %} + +{% block crane_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 crane-archive /crane-source + +{% set crane_pip_packages = [ + '/crane' +] %} + +RUN ln -s crane-source/* crane \ + && {{ macros.install_pip(crane_pip_packages | customizable("pip_packages"), constraints=false) }} + +{% endif %} + +COPY extend_start.sh /usr/local/bin/kolla_extend_start +RUN chmod 755 /usr/local/bin/kolla_extend_start + +{% block crane_footer %}{% endblock %} +{% block footer %}{% endblock %} diff --git a/docker/crane/extend_start.sh b/docker/crane/extend_start.sh new file mode 100644 index 000000000..ada839e96 --- /dev/null +++ b/docker/crane/extend_start.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# Assume the service runs on top of Apache when user is root +if [[ "$(whoami)" == 'root' ]]; then + # NOTE(pbourke): httpd will not clean up after itself in some cases which + # results in the container not being able to restart. (bug #1489676, 1557036) + if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then + # Loading Apache2 ENV variables + . /etc/apache2/envvars + rm -rf /var/run/apache2/* + else + rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* + fi +fi -- cgit v1.2.3