我正在使用molecule测试一个ansible角色。这个角色安装了一个我无法洞察的公司二进制文件,我只是对./binary --silent
的意思,就是这样。在RedHat上。
它适用于RedHat 6.9 VM。但它不适用于docker容器registry.access.redhat.com/rhel6:6.9。
错误消息说:
“操作系统坏语言(en_US未找到)”。
VM上的容器可能会丢失什么?一些localedef ......?我无法找到关于此的文档,但是有一些关于它们“从ISO最小安装”虚拟机和容器之间的增量的RedHat描述吗?
谢谢你的帮助
如果你在你正在使用的Docker镜像上运行locale -a
,你将获得以下输出:
C
en_US.utf8
POSIX
在VM中运行相同的命令并比较输出。如果它包含行en_US
(没有utf-8后缀),请尝试在FROM
中的Dockerfile
指令下面正确添加以下行:
RUN localedef -v -c -i en_US -f UTF-8 en_US; exit 0
RUN sed -i 's/en_US.UTF-8/en_US/g' /etc/sysconfig/i18n && source /etc/sysconfig/i18n
这将生成语言环境en_US,其编码为UTF-8,名为en_US(不带任何后缀)。