diff options
| author | Steven Dake <stdake@cisco.com> | 2015-08-28 17:18:25 -0700 |
|---|---|---|
| committer | Sam Yaple <sam@yaple.net> | 2015-08-29 09:50:52 +0000 |
| commit | f587ed372910c2afc97d8dcfc6daa0fca263c8bf (patch) | |
| tree | 0dc48915628fcd8fd567367deecb4834933d1afd /docker | |
| parent | 22fa0f9437dc94733241499628f0cf63ce66a215 (diff) | |
| download | kolla-f587ed372910c2afc97d8dcfc6daa0fca263c8bf.tar.gz kolla-f587ed372910c2afc97d8dcfc6daa0fca263c8bf.zip | |
Make Horizon work on centos+binary
Several problems exist with Horizon on centos+binary:
1. The default setup of http binds a port to port 80 on RPM
based distros.
2. There is no horizon user/group added causing config-external
to break badly.
3. openstack-dashboard is installed in
/usr/share/openstack-dashboard/openstack_dashboard. This
is incompatible with the expectations of the wsgi configuration.
4. the target for config-external is
/etc/httpd/sites.d/horizon.conf. It should be
/etc/httpd/conf.d/horizon.conf
5. A workaround is required for:
https://bugzilla.redhat.com/show_bug.cgi?id=1220070
6. Static display requires compressing the installation via
manage.py. To do this correctly pyscss needs to be upgraded
because the version in RDO is broken.
Co-Authored-By: Sam Yaple <sam@yaple.net>
Change-Id: Iabd3044906920f5cc60b9a6b320e62d1d7c9210f
Closes-Bug: #1490066
Diffstat (limited to 'docker')
| -rw-r--r-- | docker/horizon/Dockerfile.j2 | 27 | ||||
| -rw-r--r-- | docker/horizon/config-external.sh | 3 |
2 files changed, 23 insertions, 7 deletions
diff --git a/docker/horizon/Dockerfile.j2 b/docker/horizon/Dockerfile.j2 index 2fe69b3d2..8bf6babdd 100644 --- a/docker/horizon/Dockerfile.j2 +++ b/docker/horizon/Dockerfile.j2 @@ -9,10 +9,21 @@ RUN yum -y install \ httpd \ mod_wsgi \ && yum clean all \ - && chown -R apache: /usr/share/openstack-dashboard/static + && chown -R apache: /usr/share/openstack-dashboard/static \ + && useradd --user-group horizon \ + && sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.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 + +RUN sed -i "s|WEBROOT = '/dashboard/'|WEBROOT = '/'|" /etc/openstack-dashboard/local_settings \ + && cp /usr/share/openstack-dashboard/manage.py /usr/bin/manage.py \ + && /usr/bin/python /usr/bin/manage.py collectstatic --noinput --clear \ + && pip install -U django-pyscss \ + && /usr/bin/python /usr/bin/manage.py compress --force -# The chown is required because of this packaging bug: -# https://bugzilla.redhat.com/show_bug.cgi?id=1219006 +# djano-pyscss causes manage.py compress to fail as shipped with current +# RDO. Upgrading to latest version appears to get mange.py to work properly {% elif base_distro in ['ubuntu', 'debian'] %} @@ -26,7 +37,8 @@ RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ RUN yum install -y \ httpd \ mod_wsgi \ - && yum clean all + && yum clean all \ + && sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf {% elif base_distro in ['ubuntu', 'debian'] %} @@ -43,10 +55,13 @@ RUN ln -s /horizon-* horizon \ && pip --no-cache-dir install /horizon \ && useradd --user-group horizon \ && mkdir -p /etc/openstack-dashboard /home/horizon \ - && ln -s openstack_dashboard/static/ /usr/lib/python2.7/site-packages/static \ && ln -s /etc/openstack-dashboard/local_settings /usr/lib/python2.7/site-packages/openstack_dashboard/local/local_settings.py \ && cp -r /horizon/openstack_dashboard/conf/* /etc/openstack-dashboard/ \ - && chown -R horizon: /etc/openstack-dashboard /home/horizon /usr/lib/python2.7/site-packages/openstack_dashboard/static + && cp /horizon/openstack_dashboard/local/local_settings.py.example /etc/openstack-dashboard/local_settings \ + && cp /horizon/manage.py /usr/bin/manage.py \ + && /usr/bin/python /usr/bin/manage.py collectstatic --noinput --clear \ + && /usr/bin/python /usr/bin/manage.py compress --force \ + && chown -R horizon: /etc/openstack-dashboard /home/horizon /usr/lib/python2.7/site-packages/static {% endif %} diff --git a/docker/horizon/config-external.sh b/docker/horizon/config-external.sh index 8e9fc47a0..6eaedb3d4 100644 --- a/docker/horizon/config-external.sh +++ b/docker/horizon/config-external.sh @@ -15,7 +15,8 @@ if [[ "${KOLLA_BASE_DISTRO}" == "ubuntu" || \ TARGET="/etc/apache2/sites-enabled/000-default.conf" else SOURCE="/opt/kolla/horizon/horizon.conf" - TARGET="/etc/httpd/sites.d/horizon.conf" + TARGET="/etc/httpd/conf.d/horizon.conf" + fi if [[ -f "$SOURCE" ]]; then |
