Docker不支持中文解决方案
目录
ubuntu官方镜像默认的字符集支持
C
,C.UTF-8
, andPOSIX
查看容器使用的字符集
root@huige-demo-web-0:/var/www/html/forum/files# locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
要使容器内进程可以打开中文文件,需要将locale
设置成C.UTF-8
即可
修改Dockerfile
,添加ENV
ENV LANG C.UTF-8
重新构建,运行,再次查看locale
root@4d4501013874:/# locale
LANG=c.utf8
LANGUAGE=
LC_CTYPE="c.utf8"
LC_NUMERIC="c.utf8"
LC_TIME="c.utf8"
LC_COLLATE="c.utf8"
LC_MONETARY="c.utf8"
LC_MESSAGES="c.utf8"
LC_PAPER="c.utf8"
LC_NAME="c.utf8"
LC_ADDRESS="c.utf8"
LC_TELEPHONE="c.utf8"
LC_MEASUREMENT="c.utf8"
LC_IDENTIFICATION="c.utf8"
LC_ALL=
如果想让容器内可以正常显示中文(应该没人想这么干吧),需要先安装locale
然后将locale
设置成zh_CN.UTF-8
修改Dockerfile
,添加
RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \
&& localedef -i zh_CN -c -f UTF-8 -A /usr/share/locale/locale.alias zh_CN.UTF-8
ENV LANG zh_CN.utf8
然后就可以完美显示中文了