CSDN:黑猫_:Dockerfile 创建容器内中文乱码问题解决
博客园:杜家利:解决docker容器中Centos7系统的中文乱码
CSDN:Diego2048:docker 容器中文字生成图片乱码 解决方案
需求描述:
公司微服务架构,Docker启动服务,有个上传附件的功能,图片加水印,中文乱码。
通过百度及阅读相关博文,找到了相关解决方法如下:
一、通过Dockerfile解决中文乱码问题
使用Dockerfile 构建一个新的带有中文环境的镜像。
FROM centos
MAINTAINER maochengli
#设置系统编码
RUN yum install kde-l10n-Chinese -y
RUN yum install glibc-common -y
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
#RUN export LANG=zh_CN.UTF-8
#RUN echo "export LANG=zh_CN.UTF-8" >> /etc/locale.conf
#ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8
使用 Docker build -t centos-zh . 构建一个新的镜像,这个镜像就支持中文了。
方式二:
在Dockerfile中添加一行,如下所示:
ENV LANG C.UTF-8
重新制作docker镜像,重新进入容器后发现问题解决!
二、临时解决
进入到容器当中,然后:
$>localedef -i zh_CN -f UTF-8 zh_CN.UTF-8
$>yum -y install kde-l10n-Chinese && yum -y reinstall glibc-common
$>localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
$>export LC_ALL=zh_CN.utf8
方式二:
yum -y install kde-l10n-Chinese && yum -y reinstall glibc-common
localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
export LC_ALL=zh_CN.utf8
三、修改jre/lib/fonts下的字体
进入到docker容器内部,
docker exec -it 容器ID /bin/bash
然后进入到容器内部的jdk目录,在$JAVA_HOME/jre/lib/fonts下上传需要的字体,如simsun.ttc。
exit
退出容器,然后重启容器。
docker restart 容器Id
so,应该会成功的吧。。我是这样成功的。。