From 890d199e98dcc0edaf0ccc5ac8a0c479d3209efc Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Tue, 12 Jan 2021 16:18:51 +0000 Subject: Add a storm-base image Refactor storm image dependencies. Previously we had: base -> storm -> monasca-thresh Both storm and monasca-thresh images are final, and each includes a footer. This causes issues when the footer expects to be at the end of the image, or there to be only a single footer. In particular, since I2592a736206eaec811290e9fbdbf2540c0518ffe, the footer used in CI jobs reverts to the public package mirrors. This change introduces a storm-base image, and refactors the dependency chain: base -> storm-base -> storm base -> storm-base -> monasca-thresh Related-Bug: #1902101 Change-Id: I53e8ba8d4baa4434cf3c49ed94d1f7cb44099bee (cherry picked from commit 93204ecfeca7ba394bd4c3872147357aa708f46e) --- docker/monasca/monasca-thresh/Dockerfile.j2 | 4 +-- docker/storm/Dockerfile.j2 | 56 ----------------------------- docker/storm/extend_start.sh | 9 ----- docker/storm/storm-base/Dockerfile.j2 | 53 +++++++++++++++++++++++++++ docker/storm/storm-base/extend_start.sh | 9 +++++ docker/storm/storm/Dockerfile.j2 | 13 +++++++ 6 files changed, 76 insertions(+), 68 deletions(-) delete mode 100644 docker/storm/Dockerfile.j2 delete mode 100644 docker/storm/extend_start.sh create mode 100644 docker/storm/storm-base/Dockerfile.j2 create mode 100644 docker/storm/storm-base/extend_start.sh create mode 100644 docker/storm/storm/Dockerfile.j2 diff --git a/docker/monasca/monasca-thresh/Dockerfile.j2 b/docker/monasca/monasca-thresh/Dockerfile.j2 index f76ef50e0..cc8f7a6ad 100644 --- a/docker/monasca/monasca-thresh/Dockerfile.j2 +++ b/docker/monasca/monasca-thresh/Dockerfile.j2 @@ -1,8 +1,6 @@ -FROM {{ namespace }}/{{ image_prefix }}storm:{{ tag }} +FROM {{ namespace }}/{{ image_prefix }}storm-base:{{ tag }} LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" -USER root - {% block monasca_thresh_header %}{% endblock %} {% import "macros.j2" as macros with context %} diff --git a/docker/storm/Dockerfile.j2 b/docker/storm/Dockerfile.j2 deleted file mode 100644 index 51552926c..000000000 --- a/docker/storm/Dockerfile.j2 +++ /dev/null @@ -1,56 +0,0 @@ -FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }} -LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" - -{% block storm %}{% endblock %} - -{% import "macros.j2" as macros with context %} - -{{ macros.configure_user(name='storm', homedir='/opt/storm') }} - -{% if base_package_type == 'rpm' %} - {% set storm_packages = [ - 'java-1.8.0-openjdk-headless', - ] %} -{% elif base_package_type == 'deb' %} - - {% if base_distro == 'debian' %} - {% set java_version = '11' %} - {% elif base_distro == 'ubuntu' %} - {% set java_version = '8' %} - {% endif %} - - {% set storm_packages = [ - 'openjdk-' + java_version + '-jre-headless', - ] %} -{% endif %} - -{{ macros.install_packages(storm_packages | customizable("packages")) }} - -{% block storm_version %} -ENV storm_version=1.2.2 -ENV storm_url=https://archive.apache.org/dist/storm/apache-storm-${storm_version}/apache-storm-${storm_version}.tar.gz -ENV storm_pkg_sha512sum=0a1120b8df7b22edc75f0a412d625841f72f3fb8e9ff5d413d510908d68ea1f0c17d68c1a7f1eda427b40902452e9efcae902c36499b558592e41cc1079de2e0 -{% endblock %} - -{% block storm_install %} -RUN curl -sSL -o /tmp/storm.tgz ${storm_url} \ - && echo "${storm_pkg_sha512sum} /tmp/storm.tgz" | sha512sum -c \ - && tar --strip 1 -xvf /tmp/storm.tgz -C /opt/storm \ - && rm -f /tmp/storm.tgz - -{% endblock %} - -{% block storm_python_version %} -# NOTE(dszumski): Storm needs to be told where the Py3 interpreter lives -{% if distro_python_version.startswith('3') %} -ENV PYTHON={{ '/usr/bin/python' ~ distro_python_version }} -{% endif %} -{% endblock %} - -COPY extend_start.sh /usr/local/bin/kolla_extend_start -RUN chmod 755 /usr/local/bin/kolla_extend_start - -{% block storm_footer %}{% endblock %} -{% block footer %}{% endblock %} - -USER storm diff --git a/docker/storm/extend_start.sh b/docker/storm/extend_start.sh deleted file mode 100644 index 6c9bb0b62..000000000 --- a/docker/storm/extend_start.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -# Create log directory, with appropriate permissions -if [[ ! -d "/var/log/kolla/storm" ]]; then - mkdir -p /var/log/kolla/storm -fi -if [[ $(stat -c %a /var/log/kolla/storm) != "755" ]]; then - chmod 755 /var/log/kolla/storm -fi diff --git a/docker/storm/storm-base/Dockerfile.j2 b/docker/storm/storm-base/Dockerfile.j2 new file mode 100644 index 000000000..e4a3c6bb1 --- /dev/null +++ b/docker/storm/storm-base/Dockerfile.j2 @@ -0,0 +1,53 @@ +FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block storm_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{{ macros.configure_user(name='storm', homedir='/opt/storm') }} + +{% if base_package_type == 'rpm' %} + {% set storm_packages = [ + 'java-1.8.0-openjdk-headless', + ] %} +{% elif base_package_type == 'deb' %} + + {% if base_distro == 'debian' %} + {% set java_version = '11' %} + {% elif base_distro == 'ubuntu' %} + {% set java_version = '8' %} + {% endif %} + + {% set storm_packages = [ + 'openjdk-' + java_version + '-jre-headless', + ] %} +{% endif %} + +{{ macros.install_packages(storm_packages | customizable("packages")) }} + +{% block storm_version %} +ENV storm_version=1.2.2 +ENV storm_url=https://archive.apache.org/dist/storm/apache-storm-${storm_version}/apache-storm-${storm_version}.tar.gz +ENV storm_pkg_sha512sum=0a1120b8df7b22edc75f0a412d625841f72f3fb8e9ff5d413d510908d68ea1f0c17d68c1a7f1eda427b40902452e9efcae902c36499b558592e41cc1079de2e0 +{% endblock %} + +{% block storm_install %} +RUN curl -sSL -o /tmp/storm.tgz ${storm_url} \ + && echo "${storm_pkg_sha512sum} /tmp/storm.tgz" | sha512sum -c \ + && tar --strip 1 -xvf /tmp/storm.tgz -C /opt/storm \ + && rm -f /tmp/storm.tgz + +{% endblock %} + +{% block storm_python_version %} +# NOTE(dszumski): Storm needs to be told where the Py3 interpreter lives +{% if distro_python_version.startswith('3') %} +ENV PYTHON={{ '/usr/bin/python' ~ distro_python_version }} +{% endif %} +{% endblock %} + +COPY extend_start.sh /usr/local/bin/kolla_extend_start +RUN chmod 755 /usr/local/bin/kolla_extend_start + +{% block storm_base_footer %}{% endblock %} diff --git a/docker/storm/storm-base/extend_start.sh b/docker/storm/storm-base/extend_start.sh new file mode 100644 index 000000000..6c9bb0b62 --- /dev/null +++ b/docker/storm/storm-base/extend_start.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# Create log directory, with appropriate permissions +if [[ ! -d "/var/log/kolla/storm" ]]; then + mkdir -p /var/log/kolla/storm +fi +if [[ $(stat -c %a /var/log/kolla/storm) != "755" ]]; then + chmod 755 /var/log/kolla/storm +fi diff --git a/docker/storm/storm/Dockerfile.j2 b/docker/storm/storm/Dockerfile.j2 new file mode 100644 index 000000000..dc61969ce --- /dev/null +++ b/docker/storm/storm/Dockerfile.j2 @@ -0,0 +1,13 @@ +FROM {{ namespace }}/{{ image_prefix }}storm-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" +{% endblock %} + +{% block storm_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% block storm_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER storm -- cgit v1.2.3