diff options
Diffstat (limited to 'docker/horizon')
| -rw-r--r-- | docker/horizon/Dockerfile.j2 | 58 | ||||
| -rw-r--r-- | docker/horizon/config-external.sh | 25 | ||||
| -rwxr-xr-x | docker/horizon/start.sh | 23 |
3 files changed, 106 insertions, 0 deletions
diff --git a/docker/horizon/Dockerfile.j2 b/docker/horizon/Dockerfile.j2 new file mode 100644 index 000000000..2fe69b3d2 --- /dev/null +++ b/docker/horizon/Dockerfile.j2 @@ -0,0 +1,58 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net.kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %} + +RUN yum -y install \ + openstack-dashboard \ + httpd \ + mod_wsgi \ + && yum clean all \ + && chown -R apache: /usr/share/openstack-dashboard/static + +# The chown is required because of this packaging bug: +# https://bugzilla.redhat.com/show_bug.cgi?id=1219006 + + {% elif base_distro in ['ubuntu', 'debian'] %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + + {% endif %} +{% elif install_type == 'source' %} + {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %} + +RUN yum install -y \ + httpd \ + mod_wsgi \ + && yum clean all + + {% elif base_distro in ['ubuntu', 'debian'] %} + +RUN apt-get install -y --no-install-recommends \ + apache2 \ + libapache2-mod-wsgi \ + && echo > /etc/apache2/ports.conf \ + && apt-get clean + + {% endif %} + +ADD horizon.tar / +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 + +{% endif %} + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] + +{{ include_footer }} diff --git a/docker/horizon/config-external.sh b/docker/horizon/config-external.sh new file mode 100644 index 000000000..8e9fc47a0 --- /dev/null +++ b/docker/horizon/config-external.sh @@ -0,0 +1,25 @@ +#!/bin/bash +SOURCE="/opt/kolla/horizon/local_settings" +TARGET="/etc/openstack-dashboard/local_settings" +OWNER="horizon" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi + +if [[ "${KOLLA_BASE_DISTRO}" == "ubuntu" || \ + "${KOLLA_BASE_DISTRO}" == "debian" ]]; then + SOURCE="/opt/kolla/horizon/horizon.conf" + TARGET="/etc/apache2/sites-enabled/000-default.conf" +else + SOURCE="/opt/kolla/horizon/horizon.conf" + TARGET="/etc/httpd/sites.d/horizon.conf" +fi + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/horizon/start.sh b/docker/horizon/start.sh new file mode 100755 index 000000000..096326a3a --- /dev/null +++ b/docker/horizon/start.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +set -o errexit + +# Loading common functions +source /opt/kolla/kolla-common.sh + +if [[ "${KOLLA_BASE_DISTRO}" == "ubuntu" || \ + "${KOLLA_BASE_DISTRO}" == "debian" ]]; then + CMD="/usr/sbin/apache2" + ARGS="-DFOREGROUND" + + # Loading Apache2 ENV variables + source /etc/apache2/envvars +else + CMD="/usr/sbin/httpd" + ARGS="-DFOREGROUND" +fi + +# Execute config strategy +set_configs + +exec $CMD $ARGS |
