diff --git a/docker/horizon/Dockerfile b/docker/horizon/Dockerfile index ce925baf26..2c34ee03ab 100644 --- a/docker/horizon/Dockerfile +++ b/docker/horizon/Dockerfile @@ -1,8 +1,15 @@ FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%base:%%KOLLA_TAG%% MAINTAINER Kolla Project (https://launchpad.net/kolla) -RUN yum -y install openstack-dashboard \ - httpd httpd-mod-wsgi && yum clean all +RUN yum -y install \ + openstack-dashboard \ + httpd \ + httpd-mod-wsgi \ + && yum clean all \ + && chown -R apache:apache /usr/share/openstack-dashboard/static + +# The chown is required because of this packaging bug: +# https://bugzilla.redhat.com/show_bug.cgi?id=1219006 ADD ./start.sh /start.sh diff --git a/docker/horizon/start.sh b/docker/horizon/start.sh index f087a429e2..4e720bb879 100755 --- a/docker/horizon/start.sh +++ b/docker/horizon/start.sh @@ -13,6 +13,7 @@ export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" cfg=/etc/openstack-dashboard/local_settings +httpdcfg=/etc/httpd/conf.d/openstack-dashboard.conf sed -ri 's/ALLOWED_HOSTS = \['\''horizon.example.com'\'', '\''localhost'\''\]/ALLOWED_HOSTS = \['\''*'\'', \]/' /etc/openstack-dashboard/local_settings @@ -20,4 +21,16 @@ sed -ri 's/OPENSTACK_KEYSTONE_URL = \"http:\/\/%s:5000\/v2.0\" % OPENSTACK_HOST/ sed -ri 's/OPENSTACK_HOST = \"127.0.0.1\"/OPENSTACK_HOST = \"'"$KEYSTONE_PUBLIC_SERVICE_HOST"'\" /' /etc/openstack-dashboard/local_settings +# Make sure we launch horizon using the default value for WEBROOT, which is +# '/'. +sed -ri '/^WEBROOT =.+/d' $cfg +sed -ri 's,^(WSGIScriptAlias) /dashboard (/usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi),\1 / \2,' $httpdcfg +sed -ri 's,^(Alias /dashboard)(/static /usr/share/openstack-dashboard/static),Alias \2,' $httpdcfg + +# This step is required because of: +# https://bugzilla.redhat.com/show_bug.cgi?id=1220070 +# Running this in the Dockerfile didn't fix the HTTP/500 as a result of the +# missing compress action. +python /usr/share/openstack-dashboard/manage.py compress + /usr/sbin/httpd -DFOREGROUND