Docker版highcharts中文导出服务器

简介: 原文地址:http://kekefund.com/2017/05/12/docker-highcharts-server/(本人博客)highcharts的导出服务器使用固然方便,但需要把数据上传到它的服务器,对于数据安全性的考虑和外网访问限制的场景,搭建自己的导出服务器是比较可靠的。

原文地址:http://kekefund.com/2017/05/12/docker-highcharts-server/(本人博客)

highcharts的导出服务器使用固然方便,但需要把数据上传到它的服务器,对于数据安全性的考虑和外网访问限制的场景,搭建自己的导出服务器是比较可靠的。highcharts提供了一套搭建导出服务器的方法,本文在这个基础上将导出服务器封装成一个Docker容器,并且实现了图片中文字体的支持。

1,基于centos官方镜像

docker pull centos

2,启动容器并进入

docker run -it --name=hcharts -p 3002:80 -v /Users/Download:/home centos bash

3,安装phantomjs

由于phantomjs的tar.bz2在centos容器中解压失败,我们采用在宿主机中下载并解压好,通过-v链接到容器中。
在宿主机中下载最新版的phamtomjs,解压到/Users/Download/。在容器的/home目录下就能看到宿主机的解压文件。

设置PATH路径:

[root@bfdb9f8adaf6 my_fonts]# export PHANTOMJS_HOME = /PATH/phantomjs-2.1.1
[root@bfdb9f8adaf6 my_fonts]# export PATH = $PATH:$PHANTOMJS_HOME/bin

请在下面相对应的linux版本 运行以下命令

# ubuntu
sudo apt-get install libfontconfig
 
# centos
yum install libXext libXrender fontconfig libfontconfig.so.1

输出下面的版本信息即安装成功

# phantomjs --version
2.1.1

4,安装node.js

curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
yum -y install nodejs

参考:https://nodejs.org/en/download/package-manager/

5,安装highcharts导出模块

# 淘宝[npm镜像](http://npm.taobao.org/):
npm config set registry https://registry.npm.taobao.org 
// 全局安装导出模块
npm install highcharts-export-server -g
// 安装完毕后检查是否安装成功
highcharts-export-server

6,中文字体的支持

a,复制中文字体到容器

将windows的fonts目录下拷贝simkai.ttf、simsun.ttc、simhei.ttf,通过-v上传到容器/home目录下。
在容器的usr/share/fonts目录下新建my_fonts,

$ cd /usr/share/fonts
$ mkdir myfonts
$ mv /home/simkai.ttf ./myfonts
$ mv /home/simsun.ttc ./myfonts
$ mv /home/simhei.ttf ./myfonts

b,生成字体索引

在myfonts目录下执行 mkfontscale,执行成功后执行下面命令:fc-list :lang=zh,输出有信息即安装成功!

[root@bfdb9f8adaf6 my_fonts]# fc-list :lang=zh
/usr/share/fonts/my_fonts/simsun.ttc: NSimSun,新宋体:style=Regular
/usr/share/fonts/my_fonts/simhei.ttf: SimHei,黑体:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
/usr/share/fonts/my_fonts/simkai.ttf: KaiTi,楷体:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
/usr/share/fonts/my_fonts/simsun.ttc: SimSun,宋体:style=Regular

7,测试

curl -H "Content-Type: application/json" -X POST -d '{"infile":{"title": {"text": "中文测试"}, "xAxis": {"categories": ["Jan", "Feb", "Mar"]}, "series": [{"data": [29.9, 71.5, 106.4]}]}}' 127.0.0.1:3002 -o mychart.png

得到图片:


8,从Docker仓库获取

本教程中的镜像已上传至docker官方仓库, 链接,按照说明pull即可。

docker run -d --name=hcharts0.2 --restart=always -p 3003:3000 cbbing/hcharts highcharts-export-server --enableServer 1 --port 3000

参考:

1,Linux下导出服务器缺少字体中文乱码问题解决办法

2,搭建导出服务器

目录
相关文章
|
19天前
|
存储 Linux Docker
docker在欧拉服务器上编译安装应该注意什么?如何操作?
【10月更文挑战第31天】docker在欧拉服务器上编译安装应该注意什么?如何操作?
48 2
|
1月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
270 3
|
1月前
|
弹性计算 数据库连接 Nacos
阿里云ECS服务器在docker中部署nacos
docker pull nacos 失败,docker部署nacos遇到的问题,nacos数据库连接,nacos端口映射
105 1
|
1月前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
36 2
|
1月前
|
前端开发 Docker 容器
主机host服务器和Docker容器之间的文件互传方法汇总
Docker 成为前端工具,可实现跨设备兼容。本文介绍主机与 Docker 容器/镜像间文件传输的三种方法:1. 构建镜像时使用 `COPY` 或 `ADD` 指令;2. 启动容器时使用 `-v` 挂载卷;3. 运行时使用 `docker cp` 命令。每种方法适用于不同场景,如静态文件打包、开发时文件同步及临时文件传输。注意权限问题、容器停止后的文件传输及性能影响。
180 0
|
Docker 容器
Docker导出和载入镜像
在我们使用Docker的时候,可能会用到别的服务器镜像文件,这时我们可以用到保存和载入操作
177 0
|
13天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
55 2
|
11天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
4天前
|
Kubernetes Linux 开发者
深入探索容器化技术——Docker 的实战应用
深入探索容器化技术——Docker 的实战应用
25 5
|
5天前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!

热门文章

最新文章

下一篇
无影云桌面