diff options
| author | Dan Prince <dprince@redhat.com> | 2018-08-23 08:22:04 -0400 |
|---|---|---|
| committer | Martin André <m.andre@redhat.com> | 2018-09-21 13:54:29 +0200 |
| commit | 4f9ee9f1324fb05eff6be4cf5c4b00f8bb29bf7c (patch) | |
| tree | f3d1e2da785e1b9273e581e58a81b1e180f2af3f /docker/crane | |
| parent | 09b1147665c73ebd6b3c27befb19652c75428ec2 (diff) | |
| download | kolla-4f9ee9f1324fb05eff6be4cf5c4b00f8bb29bf7c.tar.gz kolla-4f9ee9f1324fb05eff6be4cf5c4b00f8bb29bf7c.zip | |
Add crane docker image
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é <m.andre@redhat.com>
Change-Id: I59d9521f99243401d7703a3dedc26b5baed2d595
Diffstat (limited to 'docker/crane')
| -rw-r--r-- | docker/crane/Dockerfile.j2 | 68 | ||||
| -rw-r--r-- | docker/crane/extend_start.sh | 14 |
2 files changed, 82 insertions, 0 deletions
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 |
