通过dockerfile设置镜像的时区和中文编码

背景
我们的项目中有一块日志收集的功能,主要来收集容器化之后的一些实例的日志,项目在运行之后发现收集到的日志时间过滤有问题,并且中文显示乱码。

中文乱码问题分析
因为乱码问题涉及的点一般会比较多,遇到这种问题要从根源去分析是哪个环节导致的,有的是系统不支持中文,有的是因为数据库编码问题,有的是代码中编码问题。
我们的场景是从pod中获取日志,然后经过代码解析,然后写入到数据库,以上提到的三个方面都涉及了。根据这个场景,先从根源入手,通过命令去查看pod的日志输出,发现pod中的日志输出就是乱码的,于是很快问题发现。因为镜像是我们自己制作的,所以直接通过修改dockerfile文件来解决,详细如下,亲测有效:

RUN yum -y install kde-l10n-Chinese #安装中文支持
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 #配置显示中文
ENV LC_ALL zh_CN.utf8 #设置环境变量
ENV LANG zh_CN.UTF-8  #设置环境变量

看到网上有说需要同时安装 glibc-common,也即

RUN yum -y 

你可能感兴趣的:(项目总结,docker,docker)