FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }} {% block labels %} LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" {% endblock %} {% block horizon_header %}{% endblock %} {% import "macros.j2" as macros with context %} {{ macros.configure_user(name='horizon') }} {% if base_package_type == 'rpm' %} {% set horizon_packages = [ 'gettext' ] %} {{ macros.install_packages(horizon_packages | customizable("packages")) }} {% elif base_package_type == 'deb' %} {% set horizon_packages = [ 'gettext', 'locales', 'tzdata' ] %} {{ macros.install_packages(horizon_packages | customizable("packages")) }} {% block horizon_ubuntu_source_setup %} RUN 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/*' ] %} COPY extend_start.sh /usr/local/bin/kolla_extend_start # NOTE(hrw): to install horizon from unpacked sources we cannot have it in upper-constraints.txt # NOTE(kevko): This dance with local settings python paths below is needed # because we are using different distros with different python version and we need to # know to which path symlink should point to. RUN ln -s horizon-source/* horizon \ && {{ macros.upper_constraints_remove("horizon") }} \ && {{ macros.install_pip(horizon_pip_packages | customizable("pip_packages")) }} \ && mkdir -p /etc/openstack-dashboard \ && cp -r /horizon/openstack_dashboard/conf/* /etc/openstack-dashboard/ \ && cp /horizon/openstack_dashboard/local/local_settings.py.example /etc/openstack-dashboard/local_settings.py \ && local_settings=$(python -c 'import os;import openstack_dashboard;settings=os.path.dirname(openstack_dashboard.__file__) + "/local/local_settings.py";print(settings);') \ && rm -f $local_settings \ && ln -s /etc/openstack-dashboard/local_settings.py $local_settings \ && mkdir -p /etc/openstack-dashboard/local_settings.d \ && local_settings_d=$(python -c 'import os;import openstack_dashboard;settings_d=os.path.dirname(openstack_dashboard.__file__) + "/local/local_settings.d";print(settings_d);') \ && rm -rf $local_settings_d \ && ln -s /etc/openstack-dashboard/local_settings.d $local_settings_d \ && cp /horizon/manage.py /var/lib/kolla/venv/bin/manage.py \ && if [ "$(ls /plugins)" ]; then \ {{ macros.install_pip(horizon_plugins_pip_packages) }}; \ fi \ && for locale in /var/lib/kolla/venv/lib/python{{distro_python_version}}/site-packages/*/locale; do \ (cd ${locale%/*} && /var/lib/kolla/venv/bin/django-admin compilemessages) \ done \ && chmod 644 /usr/local/bin/kolla_extend_start {% block horizon_footer %}{% endblock %} {% block footer %}{% endblock %}