Geoserver标注中文字体乱码解决
因为geoserver部署在docker的tomcat中,由于docker中没有所需的字体(比如sld中要求标注微软雅黑)。所以解决思路是将所需字体应用于docker中。
方法一:手动更新字体
进入对应geoserver 所在docker
docker exec -it /bin/bash
更改下载源到国内
执行
mv /etc/apt/sources.list /etc/apt/sources.list.bak
echo “deb http://mirrors.163.com/debian/ jessie main non-free contrib” >> /etc/apt/sources.list
echo “deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib” >>/etc/apt/sources.list
echo “deb-src http://mirrors.163.com/debian/ jessie main non-free contrib” >>/etc/apt/sources.list
echo “deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib” >>/etc/apt/sources.list
apt-get update
apt-get install fontconfig
创建目录
mkdir /usr/share/fonts/Chinese
将字体文件cp到docker,可以直接用windows的(在c:/windows/fonts/)
docker cp /usr/font :/usr/share/fonts/Chinese/
授予权限
chmod u+rwx /usr/share/fonts/Chinese/*
cd /usr/share/fonts/Chinese
建立字体缓存
fc-cache -fv
使缓存生效
source /etc/profile
重启geoserver
Docker restart
这种方法每次docker重新build后就会失效。
方法二:将字体在docker build的时候就复制进去
Dockerfile:
COPY ./font /usr/share/fonts
这种方法重新build也不会失效,相当于给image增加了字体文件