5.5. 変更した horizon イメージの生成

カスタムテーマの作成が完了したら、自分専用のテーマを有効にして使用する新たなコンテナーイメージを作成することができます。dockerfile により、元の horizon イメージをベースとして使用し、新たなコンテナーイメージを生成します。dockerfile の例を以下に示します。

FROM registry.redhat.io/rhosp15-rhel8/openstack-horizon
MAINTAINER Acme
LABEL name="rhosp15-rhel8/openstack-horizon-mytheme" vendor="Acme" version="0" release="1"
COPY mytheme /usr/share/openstack-dashboard/openstack_dashboard/themes/mytheme
COPY _12_mytheme_theme.py /etc/openstack-dashboard/local_settings.d/_12_mytheme_theme.py
RUN sudo chown horizon:horizon /etc/openstack-dashboard/local_settings.d/_12_mytheme_theme.py

このファイルを dockerfileという名前でご自分の horizon-themes ディレクトリーに保存します。

dockerfile を使用して新たなイメージを生成するには、以下のコマンドを実行します。

sudo podman build . -t "192.168.24.1:8787/rhosp15-rhel8/openstack-horizon-mytheme:0-1"

-t オプションで、生成されるイメージに名前およびタグを付けます。このオプションには、以下の構文を使用します。

[LOCATION]/[NAME]:[TAG]
LOCATION
これは通常、最終的にオーバークラウドがイメージをプルするのに使用するコンテナーレジストリーの場所です。ここでは、このイメージをアンダークラウドのコンテナーレジストリーにプッシュするので、この項目をアンダークラウドの IP アドレスおよびポートに設定します。
NAME
一貫性を保つため、通常は元のコンテナーイメージと同じ名前で、その後はご自分のテーマの名前になります。この場合、rhosp15-rhel8/openstack-horizon-mytheme になります。
TAG
イメージのタグです。Red Hat では、基本的にこのタグに version ラベルと release ラベルを使用し、この表記法に従うことを推奨します。このイメージの新しいバージョンを生成する場合には、release の数字を増やします (例: 0-2)。

生成されたイメージをアンダークラウドのコンテナーレジストリーにプッシュします。

$ podman push 192.168.24.1:8787/rhosp15-rhel8/openstack-horizon-mytheme:0-1
重要

Red Hat OpenStack Platform を更新またはアップグレードする場合には、新しい horizon イメージにテーマを再度適用し、変更したイメージの新しいバージョンをアンダークラウドにプッシュする必要があります。