いつの間にか、WAS Liberty のお勧めイメージが Universal Base Images (UBI) 8 をベースにしたものに変わっていました。
UBI 8 ベースの WAS Liberty のイメージを日本語ロケールで使用できるようにカスタマイズしてみます。
UBI 8 ベースのイメージがお勧めに
久しぶりに WAS Liberty イメージの official repository を見ていると、UBI 8 ベースのイメージがお勧めになっていました。
以前からの Ubuntu ベースのイメージと UBI ベースのイメージで Docker Hub も分かれているようです。
- 以前からのイメージの Docker Hub:websphere-liberty
- UBI ベースのイメージの Docker Hub:ibmcom/websphere-liberty
Ubuntu ベースのイメージに関しては、ロケールを変える方法が Docker Hub に記載されていたのですが、UBI ベースの方には記載がないようです。。。
日本語ロケールに変える
前回の記事の内容を利用して、UBI ベースの WAS Liberty のイメージを日本語ロケールに変更してみます。
手順は分かっているので、Dockerfile を作ってイメージをビルドします。以下のような Dockerfile にしてみました。USER の切り替えが入るだけで、以前の内容と同じです。
FROM ibmcom/websphere-liberty:19.0.0.12-full-java8-ibmjava-ubi
USER 0
RUN dnf update -y \
&& dnf install -y glibc-locale-source \
&& 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 \
&& dnf remove -y glibc-locale-source \
&& dnf 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
ビルドします。
C:\liberty-ubi-jp>docker build -t liberty-ubi-jp .
Sending build context to Docker daemon 2.048kB
Step 1/5 : FROM ibmcom/websphere-liberty:19.0.0.12-full-java8-ibmjava-ubi
19.0.0.12-full-java8-ibmjava-ubi: Pulling from ibmcom/websphere-liberty
(省略)
Step 2/5 : USER 0
(省略)
Step 3/5 : RUN dnf update -y && dnf install -y glibc-locale-source && 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 && dnf remove -y glibc-locale-source && dnf clean all && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
(省略)
Step 4/5 : ENV LANG="ja_JP.UTF-8" TZ="Asia/Tokyo"
(省略)
Step 5/5 : USER 1001
(省略)
Successfully built e4171b20ba08
Successfully tagged liberty-ubi-jp:latest
(省略)
起動してみる
ビルドしたイメージを docker run すると、日本語のメッセージが出力され、日本語ロケールに変わっていることが確認できます。
C:\liberty-ubi-jp>docker run --rm -it liberty-ubi-jp
IBM J9 VM バージョン 8.0.6.0 - pxa6480sr6-20191107_01(SR6) (ja_JP) で、defaultServer (WebSphere Application Server 19.0.0.12/wlp-1.0.35.cl191220191120-0300) を起動しています
[AUDIT ] CWWKE0001I: サーバー defaultServer が起動されました。
(省略)
[AUDIT ] CWWKF0011I: defaultServer サーバーは、Smarter Planet に対応する準備ができました。defaultServer サーバーは 32.056 秒で始動しました。
当然ですが、元のイメージを起動すると、英語のメッセージが出力されます。
C:\liberty-ubi-jp>docker run --rm -it ibmcom/websphere-liberty:19.0.0.12-full-java8-ibmjava-ubi
Launching defaultServer (WebSphere Application Server 19.0.0.12/wlp-1.0.35.cl191220191120-0300) on IBM J9 VM, version 8.0.6.0 - pxa6480sr6-20191107_01(SR6) (en_US)
[AUDIT ] CWWKE0001I: The server defaultServer has been launched.
(省略)
[AUDIT ] CWWKF0011I: The defaultServer server is ready to run a smarter planet. The defaultServer server started in 31.988 seconds.