UBI 9 Minimal ベースのイメージが、Java 21 に対応した WebSphere Liberty で提供されるようになりました。UBI 9 Minimal ベースのイメージはさらに軽量になっています。
今回は、UBI 9 Minimal ベースの WebSphere Liberty を日本語ロケールで使用できるようにカスタマイズしてみます。
日本語ロケールに変える
前回の記事(下記参照)の内容を利用して、UBI 9 Minimal ベースの WebSphere Liberty のイメージを日本語ロケールに変更してみます。
手順は分かっているので、Dockerfile を作ってイメージをビルドします。以下のような Dockerfile にしてみました。USER の切り替えが入るだけで、前回の内容と同じです。
FROM icr.io/appcafe/websphere-liberty:kernel-java21-openj9-ubi-minimal
USER 0
RUN microdnf update -y \
&& microdnf install -y glibc-locale-source gzip tzdata \
&& localedef -i ja_JP -c -f UTF-8 -A /usr/share/locale/locale.alias ja_JP.UTF-8 \
&& echo LANG=ja_JP.UTF-8 > /etc/locale.conf \
&& microdnf remove -y glibc-locale-source gzip \
&& microdnf clean all \
&& ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
ENV LANG="ja_JP.UTF-8" \
LC_ALL="ja_JP.UTF-8" \
TZ="Asia/Tokyo"
USER 1001
ビルドします。
$ docker build -t kernel-java21-openj9-ubi-minimal-jp .
[+] Building 3.5s (6/6) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 602B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for icr.io/appcafe/websphere-liberty:kernel-java21-openj9-ubi-minimal 0.0s
=> [1/2] FROM icr.io/appcafe/websphere-liberty:kernel-java21-openj9-ubi-minimal 0.0s
=> [2/2] RUN microdnf update -y && microdnf install -y glibc-locale-source gzip tzdata && localedef -i ja_JP - 3.3s
=> exporting to image 0.1s
=> => exporting layers 0.1s
=> => writing image sha256:8794cf91d82c768cb5ab55adab9790ff6e963d69952e30789ea22895124b7f56 0.0s
=> => naming to docker.io/library/kernel-java21-openj9-ubi-minimal-jp 0.0s
$
起動してみる
ビルドしたイメージを docker run すると、日本語のメッセージが出力され、日本語ロケールに変わっていることが確認できます。
$ docker run --rm -it kernel-java21-openj9-ubi-minimal-jp
WARNING: Unknown module: jdk.management.agent specified to --add-exports
WARNING: Unknown module: jdk.attach specified to --add-exports
Eclipse OpenJ9 VM バージョン 21.0.2+13-LTS (ja_JP) で、defaultServer (WebSphere Application Server 24.0.0.1/wlp-1.0.85.cl240120240115-2042) を起動しています
[監査 ] CWWKE0001I: サーバー defaultServer が起動されました。
[監査 ] CWWKE0100I: この製品は、開発使用向け、および限定的な実動使用向けにライセンスが交付されています。 全ライセンス条項は以下で表示可能です: https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/license/base_ilan/ilan/24.0.0.1/lafiles/ja.html
[監査 ] CWWKG0093A: 構成ドロップイン・リソースを処理中です: /opt/ibm/wlp/usr/servers/defaultServer/configDropins/defaults/keystore.xml
[警告 ] CWWKF0009W: サーバーは、いずれのフィーチャーもインストールするようには構成されていません。
[監査 ] CWWKF0012I: サーバーは次のフィーチャーをインストールしました。[]。
[監査 ] CWWKF0011I: defaultServer サーバーは、Smarter Planet に対応する準備ができました。defaultServer サーバーは 0.585 秒で始動しました。.
当然ですが、元のイメージを起動すると、英語のメッセージが出力されます。
$ docker run --rm -it icr.io/appcafe/websphere-liberty:kernel-java21-openj9-ubi-minimal
WARNING: Unknown module: jdk.management.agent specified to --add-exports
WARNING: Unknown module: jdk.attach specified to --add-exports
Launching defaultServer (WebSphere Application Server 24.0.0.1/wlp-1.0.85.cl240120240115-2042) on Eclipse OpenJ9 VM, version 21.0.2+13-LTS (en_US)
[AUDIT ] CWWKE0001I: The server defaultServer has been launched.
[AUDIT ] CWWKE0100I: This product is licensed for development, and limited production use. The full license terms can be viewed here: https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/license/base_ilan/ilan/24.0.0.1/lafiles/en.html
[AUDIT ] CWWKG0093A: Processing configuration drop-ins resource: /opt/ibm/wlp/usr/servers/defaultServer/configDropins/defaults/keystore.xml
[WARNING ] CWWKF0009W: The server has not been configured to install any features.
[AUDIT ] CWWKF0012I: The server installed the following features: [].
[AUDIT ] CWWKF0011I: The defaultServer server is ready to run a smarter planet. The defaultServer server started in 0.500 seconds.
最後に
UBI 9 Minimal ベースの WebSphere Liberty を日本語ロケールで起動する手順をまとめてみました。
UBI 8 ベースの場合の手順とあまり変わりませんが、参考になれば幸いです。