今天用centos7 部署java应用的时候,控制台输出中文日志时出现乱码(显示???)。
解决方法:
1.重新制作支持中文的centos 7镜像
Dockerfile:
FROM centos:7.6.1810
MAINTAINER chentao
RUN yum update -y && \
yum reinstall -y glibc-common && \
yum install -y telnet net-tools && \
yum clean all && \
rm -rf /tmp/* rm -rf /var/cache/yum/* && \
localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ENV LANG=zh_CN.UTF-8 \ LANGUAGE=zh_CN:zh \ LC_ALL=zh_CN.UTF-8
2.重新制作jdk镜像
Dockefile:
FROM centos-base:7.6.1810
maintainer chentao
ADD jdk-8u351-linux-x64.tar.gz /usr/local/src/
RUN ln -sv /usr/local/src/jdk1.8.0_351 /usr/local/jdk
ADD profile /etc/profile
ENV JAVA_HOME /usr/local/jdk
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/:$JRE_HOME/lib/
ENV PATH $PATH:$JAVA_HOME/bin
部署应用后,发现还是不支持中文。
3.添加jar运行参数“-Dfile.encoding=UTF-8”
java -Dfile.encoding=UTF-8 -jar linux86.jar
重新构建部署后,问题得到解决。