aboutsummaryrefslogtreecommitdiff
path: root/docker/horizon
diff options
context:
space:
mode:
Diffstat (limited to 'docker/horizon')
-rw-r--r--docker/horizon/Dockerfile.j258
-rw-r--r--docker/horizon/config-external.sh25
-rwxr-xr-xdocker/horizon/start.sh23
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