以欧拉作为基础镜像运行Java应用读取文件列表乱码

用欧拉22.03版本镜像作为基础镜像运行Java应用时,读取本地文件列表时,当文件名包含中文时会出现乱码,已知程序已经设置file.encoding为UTF-8,之前用CentOS作为基础镜像时,设置以下环境变量即可解决乱码问题:
ENV LANG zh_CN.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
但在欧拉22.03中提示无法覆盖LC_ALL这个环境变量,且仍然存在乱码问题

问题已解决,解决步骤:

  1. 将相同版本的主机/usr/lib/locale目录复制到Dockerfile所在目录
  2. 在Dockerfile中添加以下内容:
    RUN rm -rf /usr/lib/locale
    COPY locale /usr/lib/locale
    ENV LANG zh_CN.UTF-8
    然后再构建镜像运行就没问题了
    参考资料:CentOS8 的容器运行时解决中文乱码问题的一个思路 - 济南小老虎 - 博客园