LoginSignup
0
0

Universal Base Images (UBI) 9 Minimal を日本語ロケールにする

Posted at

以前、 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 ではあっさりと日本語ロケールに変更することができました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0