2021-03-19

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增加了字体文件

上一篇:SpaceVim使用笔记


下一篇:element-ui本地使用