openeuler容器jar刷日志中文日志显示问号处理
问题描述
在使用openeuler:22.03-lts-sp2 构建jdk1.8 的基础环境作为jar包服务运行环境,在运行过程中,发现日志中中文全部显示问号
处理过程
处理办法1
根据资料,在/root/.bashrc内设置
export LC_ALL=C.utf8
export LANG=C.utf8
设置完成之后,保存镜像,给镜像打tag,push测试发现日志依然显示问号
处理办法2
在镜像构建的Dockerfile,设置相关环境变量,如下
FROM openeuler/openeuler:22.03-lts-sp2
ENV TimeZone=Asia/Shanghai
ENV LANG=zh_CN.UTF-8
RUN ln -sf /usr/share/zoneinfo/UTC /etc/localtime && \
sed -i "s/TMOUT=300/TMOUT=0/g" /etc/bashrc && \
yum -y update && \
yum -y install perf lsof net-tools nc tcpdump && \
yum clean all && rm -rf /var/cache/yum
CMD ["bash"]
在构建完镜像后,发现依然存在中文问号
处理办法3(原理同方法1
FROM openeuler/openeuler:22.03-lts-sp2
RUN yum -y update && \
yum -y install iproute net-tools vim-enhanced bash-completion telnet perf nc unzip fontconfig && \
yum clean all && echo "export LC_ALL=C.utf8" >> /root/.bashrc && echo "export LANG=C.utf8" >> /root/.bashrc && source /root/.bashrc && \
rm -rf /etc/localtime && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
在构建完镜像后,发现依然存在中文问号
最终处理办法
在Dockerfile内定义环境变量ENV LANG C.UTF-8,Dockerfile定义如下:
FROM openeuler/openeuler:22.03-lts-sp2
ENV TimeZone="Asia/Shanghai" LANG="C.UTF-8"
RUN ln -sf /usr/share/zoneinfo/UTC /etc/localtime && \
sed -i "s/TMOUT=300/TMOUT=0/g" /etc/bashrc && \
yum -y update && \
yum -y install perf lsof net-tools nc tcpdump && \
yum clean all && rm -rf /var/cache/yum
CMD ["bash"]
构建镜像,日志中中文显示正常