Ant*_* O. 9 locale rhel systemd docker
我正在尝试构建一个基于oracle/database:11.2.0.2-xe
(基于 RHEL 的 Oracle Linux)的 Docker 映像,并希望更改此映像中的系统区域设置(使用RUN
中的某些命令Dockerfile
)。
根据本指南,我应该使用localectl set-locale <MYLOCALE>
,但此命令失败并显示Failed to create bus connection: No such file or directory
消息。对于需要启动 SystemD 的命令,这是一个已知的 Docker 问题。
无论如何,我尝试启动 SystemD(用作/usr/sbin/init
第一个进程以及使用此帮助-v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /run
),但随后失败并显示消息。localectl set-locale
Could not get properties: Connection timed out
所以我现在试图避免使用 来localectl
更改我的系统全局区域设置,我该怎么做?
根据这个关于在 Linux 上设置区域设置的好指南,我应该使用
localedef -c -i fr_FR -f ISO-8859-15 fr_FR.ISO-8859-15
Run Code Online (Sandbox Code Playgroud)
但是这个命令失败了
cannot read character map directory `/usr/share/i18n/charmaps': No such file or directory`
Run Code Online (Sandbox Code Playgroud)
这个SO 回复表明可以用来yum reinstall 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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8344 次 |
最近记录: |