转眼十多年过去了,从年轻的少年成为了中年油腻大叔.为了更好的生存,这段时间在学习java 学习docker. 但过程中出现了CentOS 中java docker 镜像的乱码问题;
先来看看问题现象:
运行docker 后出现了中文?号
开始以为是SSH终端问题,检查并设置为UTF-8
再次查看问题依旧.乱码
百度了下,说是需要用locale 检查本地语言环境.于是
添加中文环境编码,安装两个包
yum install kde-l10n-Chinese -y
yum install glibc-common -y
转化语言环境和字符集
localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
添加定义到系统环境变量
vi /etc/profile
export LC_ALL=zh_CN.utf8
执行生效
source /etc/profile
好了我们来看看是不是已经可以创建和显示中文文件夹了
mkdir 已
使用命令查询
可以看到中文正常显示了
-------------------CentOS 7的系统应该没有问题
这时再试docker 中的java 发现任就乱码
在docker 中增加以下内容
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
任然没有任何效果,依然乱码
于是尝试使用命令进入到docker 容器中,查看可以看到有C.UTF-8
于在在dockerfile 中增加
ENV LANG C.UTF-8
完整dockerfile 如下:
# 环境
FROM williamyeh/java8:latest
# 作者信息
MAINTAINER david "36050@qq.com"
# UTF-8 并配置环境
ENV LANG C.UTF-8
# 将本地文件tmp挂载到容器
VOLUME /tmp
# 拷贝jar
ADD demo-0.0.1-SNAPSHOT.jar /demo-0.0.1-SNAPSHOT.jar
# 执行命令
ENTRYPOINT ["java","-jar","/demo-0.0.1-SNAPSHOT.jar"]
运行docker build 命令创建一个新的镜像.
再次运行docker 中文正常显示
通过以上步骤解决了java docker 在CentOS 7中的乱码问题.
采集到花瓣