以前、 Universal Base Images (UBI) 8 を日本語ロケール ja_JP.utf8 に変更する記事(下記参照)を書きましたが、今回は UBI 9 Minimal を日本語ロケールに変更してみます。
ロケール変更作業の違い
前回の記事の最後に書いたように、UBI 8 Minimal では、microdnf install -y tzdata
でゾーン情報(tzdata)を追加できず、力業で追加する必要がありました。しかし、UBI 9 Minimal では microdnf install -y tzdata
で追加できるようになっていました。
このため、ロケール変更において、UBI 8 と UBI 9 Minimal で差が出るのは、以下の点だけとなります。
- dnf (yum) の代わりに microdnf を利用する
- localedef が使用する gzip もインストールする (不要なら後で削除する)
-
microdnf install -y tzdata
で、tzdata をインストールする
日本語ロケールにしたイメージをビルドする
では、Dockerfile を作ってイメージをビルドします。以下のような Dockerfile にしてみました。
RUN コマンドの最初で microdnf update -y
を実行していますが、不要なら削除してください。gzip は使用後にアンインストールしていますので、必要なら残してください。
FROM registry.access.redhat.com/ubi9/ubi-minimal:latest
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"
ビルドして確認してみます。
$ docker build -t ubi9-minimal-jp .
[+] Building 4.4s (6/6) FINISHED
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 512B 0.0s
=> [internal] load metadata for registry.access.redhat.com/ubi9/ubi-minimal:latest 0.0s
=> [1/2] FROM registry.access.redhat.com/ubi9/ubi-minimal:latest 0.0s
=> [2/2] RUN microdnf update -y && microdnf install -y glibc-locale-source gzip tzdata && localedef -i ja_JP - 4.1s
=> exporting to image 0.2s
=> => exporting layers 0.2s
=> => writing image sha256:2318bc35314c77e29e90ddfe78f6a3a03682e199888b19d44d53ed75677caf7e 0.0s
=> => naming to docker.io/library/ubi9-minimal-jp 0.0s
$
$
$ docker run --rm -it ubi9-minimal-jp bash
[root@f04ec791ac0b /]# date
2024年 2月 26日 月曜日 15:51:49 JST
[root@f04ec791ac0b /]#
[root@f04ec791ac0b /]# ls -al
total 72
drwxr-xr-x 1 root root 4096 2月 26 15:51 .
(省略)
drwxr-xr-x 1 root root 4096 1月 18 04:09 var
[root@f04ec791ac0b /]#
[root@f04ec791ac0b /]# sss
bash: sss: command not found
[root@f04ec791ac0b /]#
最後に
UBI 8 Minimal の時は苦労したのですが、、、
UBI 9 Minimal ではあっさりと日本語ロケールに変更することができました。