9df58642c6
This apache module is necessary for when one wants to use TLS for the services running over httpd. This only addressed RHEL based systems at the moment, since there is no such package available for Ubuntu. This requires apache2.2-common which will carry a lot more dependencies; So I think this should be handled and decided in a separate patch. when installing mod_ssl in RHEL-based distributions, an ssl.conf file is installed in the /etc/httpd/conf.d directory. This file tells httpd to listen on port 443; however, we don't want to do this by default, since this should be explicitly enabled by the container's configuration. This line is thus removed from the configuration. A release note was added, which specifies this. And the last sentence can be removed if this is addressed for debian/ubuntu as well. Related-Bug: #1675490 Co-Authored-By: Martin André <m.andre@redhat.com> Change-Id: Id6215d31547247309d43c031e163fa9e4c4ec5dc
146 lines
6.2 KiB
Django/Jinja
146 lines
6.2 KiB
Django/Jinja
FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
|
|
MAINTAINER {{ maintainer }}
|
|
|
|
{% block horizon_header %}{% endblock %}
|
|
|
|
{% import "macros.j2" as macros with context %}
|
|
|
|
{{ macros.configure_user(name='horizon') }}
|
|
|
|
{% if install_type == 'binary' %}
|
|
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
|
|
|
|
{% set horizon_packages = [
|
|
'openstack-dashboard',
|
|
'httpd',
|
|
'mod_wsgi',
|
|
'mod_ssl',
|
|
'gettext',
|
|
'openstack-cloudkitty-ui',
|
|
'openstack-ironic-ui',
|
|
'openstack-magnum-ui',
|
|
'openstack-manila-ui',
|
|
'openstack-mistral-ui',
|
|
'openstack-murano-ui',
|
|
'openstack-neutron-lbaas-ui',
|
|
'openstack-sahara-ui',
|
|
'openstack-trove-ui'
|
|
] %}
|
|
|
|
{{ macros.install_packages(horizon_packages | customizable("packages")) }}
|
|
|
|
{% block horizon_redhat_binary_setup %}
|
|
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 \
|
|
&& ln -s /usr/share/openstack-dashboard/openstack_dashboard /usr/lib/python2.7/site-packages/openstack_dashboard \
|
|
&& ln -s /usr/share/openstack-dashboard/static /usr/lib/python2.7/site-packages/static \
|
|
&& chown -R horizon: /etc/openstack-dashboard /usr/share/openstack-dashboard \
|
|
&& chown -R apache: /usr/share/openstack-dashboard/static \
|
|
&& sed -i "s|WEBROOT = '/dashboard/'|WEBROOT = '/'|" /etc/openstack-dashboard/local_settings \
|
|
&& cp /usr/share/openstack-dashboard/manage.py /usr/bin/manage.py \
|
|
&& rm -f /usr/share/openstack-dashboard/openstack_dashboard/local/enabled/?[^_]*.py* \
|
|
&& rm -f /usr/lib/python2.7/site-packages/openstack_dashboard/local/enabled/?[^_]*.py* \
|
|
&& (cd /usr/lib/python2.7/site-packages/horizon && /usr/bin/python /usr/bin/manage.py compilemessages) \
|
|
&& (cd /usr/lib/python2.7/site-packages/openstack_dashboard && /usr/bin/python /usr/bin/manage.py compilemessages)
|
|
{% endblock %}
|
|
|
|
{% elif base_distro in ['ubuntu'] %}
|
|
|
|
{% set horizon_packages = [
|
|
'openstack-dashboard',
|
|
'apache2',
|
|
'libapache2-mod-wsgi',
|
|
'gettext',
|
|
'python-manila-ui',
|
|
'python-murano-dashboard',
|
|
'python-sahara-dashboard',
|
|
'python-trove-dashboard'
|
|
] %}
|
|
|
|
{{ macros.install_packages(horizon_packages | customizable("packages")) }}
|
|
|
|
{% block horizon_ubuntu_binary_setup %}
|
|
RUN echo > /etc/apache2/ports.conf \
|
|
&& sed -i 's|\(ServerTokens \)OS|\1Prod|' /etc/apache2/conf-available/security.conf \
|
|
&& ln -s ../mods-available/headers.load /etc/apache2/mods-enabled/headers.load \
|
|
&& ln -s ../mods-available/expires.load /etc/apache2/mods-enabled/expires.load \
|
|
&& cp /usr/share/openstack-dashboard/openstack_dashboard/conf/*.json /etc/openstack-dashboard \
|
|
&& cp /usr/share/openstack-dashboard/manage.py /usr/bin/manage.py \
|
|
&& rm /etc/apache2/conf-enabled/openstack-dashboard.conf \
|
|
&& rm /etc/openstack-dashboard/local_settings.py \
|
|
&& rm /usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py \
|
|
&& ln -s /etc/openstack-dashboard/local_settings /usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py \
|
|
&& ln -s /usr/share/openstack-dashboard/openstack_dashboard /usr/lib/python2.7/site-packages/openstack_dashboard \
|
|
&& ln -s /usr/share/openstack-dashboard/static /usr/lib/python2.7/site-packages/static \
|
|
&& (cd /usr/lib/python2.7/site-packages/horizon && /usr/bin/python /usr/bin/manage.py compilemessages) \
|
|
&& (cd /usr/lib/python2.7/site-packages/openstack_dashboard && /usr/bin/python /usr/bin/manage.py compilemessages)
|
|
{% endblock %}
|
|
|
|
{% endif %}
|
|
{% elif install_type == 'source' %}
|
|
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
|
|
|
|
{% set horizon_packages = [
|
|
'httpd',
|
|
'mod_wsgi',
|
|
'mod_ssl',
|
|
'gettext'
|
|
] %}
|
|
|
|
{{ macros.install_packages(horizon_packages | customizable("packages")) }}
|
|
|
|
{% block horizon_redhat_source_setup %}
|
|
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
|
|
{% endblock %}
|
|
|
|
{% elif base_distro in ['ubuntu', 'debian'] %}
|
|
|
|
{% set horizon_packages = [
|
|
'apache2',
|
|
'libapache2-mod-wsgi',
|
|
'gettext'
|
|
] %}
|
|
|
|
{{ macros.install_packages(horizon_packages | customizable("packages")) }}
|
|
|
|
{% block horizon_ubuntu_source_setup %}
|
|
RUN echo > /etc/apache2/ports.conf \
|
|
&& ln -s ../mods-available/headers.load /etc/apache2/mods-enabled/headers.load
|
|
{% endblock %}
|
|
|
|
{% endif %}
|
|
|
|
ADD horizon-archive /horizon-source
|
|
ADD plugins-archive /
|
|
|
|
{% set horizon_pip_packages = [
|
|
'/horizon'
|
|
] %}
|
|
|
|
{% set horizon_plugins_pip_packages = [
|
|
'/plugins/*'
|
|
] %}
|
|
|
|
RUN ln -s horizon-source/* horizon \
|
|
&& {{ macros.install_pip(horizon_pip_packages | customizable("pip_packages")) }} \
|
|
&& mkdir -p /etc/openstack-dashboard \
|
|
&& ln -s /etc/openstack-dashboard/local_settings /var/lib/kolla/venv/lib/python2.7/site-packages/openstack_dashboard/local/local_settings.py \
|
|
&& cp -r /horizon/openstack_dashboard/conf/* /etc/openstack-dashboard/ \
|
|
&& cp /horizon/openstack_dashboard/local/local_settings.py.example /etc/openstack-dashboard/local_settings \
|
|
&& cp /horizon/manage.py /var/lib/kolla/venv/bin/manage.py \
|
|
&& if [ "$(ls /plugins)" ]; then \
|
|
{{ macros.install_pip(horizon_plugins_pip_packages) }}; \
|
|
fi \
|
|
&& (cd /var/lib/kolla/venv/lib/python2.7/site-packages/horizon && /var/lib/kolla/venv/bin/python /var/lib/kolla/venv/bin/manage.py compilemessages) \
|
|
&& (cd /var/lib/kolla/venv/lib/python2.7/site-packages/openstack_dashboard && /var/lib/kolla/venv/bin/python /var/lib/kolla/venv/bin/manage.py compilemessages) \
|
|
&& chown -R horizon: /etc/openstack-dashboard /var/lib/kolla/venv/lib/python2.7/site-packages/static
|
|
|
|
{% endif %}
|
|
|
|
COPY extend_start.sh /usr/local/bin/kolla_extend_start
|
|
RUN chmod 755 /usr/local/bin/kolla_extend_start
|
|
|
|
{% block horizon_footer %}{% endblock %}
|
|
{% block footer %}{% endblock %}
|