在 docker 图像中生成所有语言环境

Generate all locales in a docker image

如何在基于 debian/ubuntu 的 docker 图像中生成所有语言环境?

locale-gen 不接受 -A/--all 选项,如下所述:http://www.linuxhowtos.org/manpages/8/locale-gen.htm.

dpkg-reconfigure locales 有一个选项可以在交互模式下生成所有语言环境,但这在 Dockerfile 中不可用。

仅仅生成英语或一组固定的语言是不够的,而且听起来也不正确。

/etc/locale.gen 中我找到了提示,即 /usr/share/i18n/SUPPORTED 列出了所有支持的语言环境代码。从 https://people.debian.org/~schultmc/locales.html and https://wiki.debian.org/Locale 开始,将所有需要的代码添加到 /etc/locale.gen 和 运行 locale-gen 应该就足够了。所以这是我的解决方案:

RUN cp /usr/share/i18n/SUPPORTED /etc/locale.gen
RUN locale-gen

只需在 docker 容器中通过包 locales-all 安装预编译的语言环境数据。这也减少了构建时间,因为不必生成语言环境,请参阅 /var/lib/dpkg/info/locales.postinst.

中的代码

RUN echo 'locales locales/locales_to_be_generated multiselect All locales' | debconf-set-selections && dpkg-reconfigure --frontend=noninteractive locales 等技巧对我也不起作用。