目前专注小微企业运维外包

tomcat docker中文乱码问题

解决 tomcatdocker镜像中文乱码问题

使用tomcat的官方镜像部署服务,但是出现中文乱码问题

问题分析

1.出现乱码问题 -- 开发将GBK改为utf8后 在测试环境使用tomcat已经未出现乱码,但预发布环境使用docker出现乱码
2.登录docker容器内发现字符集设置为C.UTF-8,于是启动容器时指定env LANG=en_US.UTF-8但问题并未解决
3.陷入僵局-- 修改catalina.sh 指定JAVA_OPTS=-Dfile.encoding=UTF-8 启动应用 还是乱码
4.使用locale -a 查看支持的字符集 发现并没有zh_CN.utf8或者en_US.UTF-8 于是尝试在容器内安装中文字符集 apt-get update && apt-get install Xxx 未果 并没有安装包
5.最后尝试将字符集文件挂载到容器内 并设置UTF8 解决 docker-compose 如下

docker-compose 示例

version: '3'
services:
  tuisong-system:
    container_name: tuisong-system
    image: tomcat:9.0-jdk8
    #network_mode: "host"
    ports:
      - "8082:8080"
    restart: always
    environment:
      - LANG=en_US.UTF-8
      #- LANG=zh_CN.utf8
      - JAVA_OPTS=-Dfile.encoding=UTF-8
    volumes:
      - ./webapps:/usr/local/tomcat/webapps
      - ./FZKTJW.TTF:/usr/local/share/fonts/FZKTJW.TTF
    deploy:
      resources:
        limits:
          memory: 4096M

中文字体下载地址

https://iptables.cn/file/fonts/FZKTJW.TTF