podman centos8の日本語化

公式centosイメージでは、時間が日本語に対応していないし、日本語ファイル名も文字化けしたような表示になってしまうので対策しました。

公式centosイメージをそのまま使ってコンテナ作成すると、時間はUTC、日本語ファイル名は数字の羅列になってます。

# date
Sun Oct 18 14:02:21 UTC 2020

# touch あ
# ls
 ''$'\343\201\202'

Dockerfileを書く

FROM registry.centos.org/centos:centos8

# パッケージをアップデート&キャッシュのクリア
RUN dnf -y update && dnf clean all


# 言語を日本語に設定、これで日本語ファイル名もちゃんと表示される
RUN dnf -y install glibc-locale-source glibc-langpack-en
# =>上記を実施しないと、[error] character map file `UTF-8' not found: No such file or directoryのエラーとなってしまう
RUN localedef -i ja_JP -f UTF-8 ja_JP.UTF-8
RUN echo 'LANG="ja_JP.UTF-8"' >  /etc/locale.conf
ENV LANG ja_JP.UTF-8

# 日付を日本語に設定
RUN echo 'ZONE="Asia/Tokyo"' > /etc/sysconfig/clock
RUN rm -f /etc/localtime
RUN ln -fs /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

RUN dnf clean all

podmanでbuildします

# podman build -t [生成するイメージ名]:[タグ名] [Dockerfileの場所]
podman build -t xxx:centos8_jp1 .

centos8ベースの日本語対応したイメージが出来ました。

# podman images
REPOSITORY                  TAG          IMAGE ID      CREATED         SIZE
localhost/xxx               centos8_jp1  3593debc59bd  19 seconds ago  365 MB

コンテナに入って確認します。

podman run -it localhost/xxx:centos8_jp1 /bin/bash

UTCがJSTになっています。

# date
2020年 10月 18日 日曜日 23:15:14 JST

日本語ファイル名もちゃんと読めるように表示されています。

# touch あいうえお
# ls
 あいうえお