Docker 在CentOS/RHEL中更改系统区域设置而不使用localectl?

Docker 在CentOS/RHEL中更改系统区域设置而不使用localectl?,docker,locale,systemd,rhel,Docker,Locale,Systemd,Rhel,我正在尝试基于(基于基于RHEL的Oracle Linux)构建Docker映像,并希望更改此映像中的系统区域设置(在Dockerfile中使用一些RUN命令) 据我所知,我应该使用localectl set locale但是这个命令失败,因为未能创建总线连接:没有这样的文件或目录消息。这适用于需要启动SystemD的命令 无论如何,我都试图启动SystemD(使用/usr/sbin/init作为第一个进程,并使用-v/sys/fs/cgroup:/sys/fs/cgroup:ro-v/run感

我正在尝试基于(基于基于RHEL的Oracle Linux)构建Docker映像,并希望更改此映像中的系统区域设置(在
Dockerfile
中使用一些
RUN
命令)

据我所知,我应该使用
localectl set locale
但是这个命令失败,因为
未能创建总线连接:没有这样的文件或目录
消息。这适用于需要启动SystemD的命令

无论如何,我都试图启动SystemD(使用
/usr/sbin/init
作为第一个进程,并使用
-v/sys/fs/cgroup:/sys/fs/cgroup:ro-v/run
感谢),但是
localectl set locale
失败,出现
无法获取属性:连接超时
消息

因此,我现在试图避免使用
localectl
来更改我的系统globale区域设置,我该怎么做呢?

根据Linux上的区域设置,我应该使用

localedef -c -i fr_FR -f ISO-8859-15 fr_FR.ISO-8859-15
但是这个命令失败了

cannot read character map directory `/usr/share/i18n/charmaps': No such file or directory`
这表明可以使用
yum重新安装glibc common-y
来修复此问题,并且效果良好

因此,我的最后一个工作
Dockerfile
是:

RUN yum reinstall glibc-common -y && \
  localedef -c -i fr_FR -f ISO-8859-15 fr_FR.ISO-8859-15 && \
  echo "LANG=fr_FR.ISO-8859-15" > /etc/locale.conf

ENV LANG fr_FR.ISO-8859-15
对于ol8(ORACLE Linux)oraclelinux8:
microdnf安装glibc langpack ru
localedef-i ru_ru-f UTF-8 ru_ru.UTF-8echo“LANG=ru_ru.UTF-8”>/etc/locale.conf俄文版openjdk:11.0.11-oracle的语言环境
docker容器
export LANG=ru_ru.UTF-8
ENV LANG ru_ru.UTF-8
Dockerfile