一 引言
最近在开发中遇到了要将echart通过java后端生成,主要思路借鉴这篇文章java后端生成echarts图片,但是在华为鲲鹏云上部署phantomjs遇到了很多问题,本文主要介绍了通过在华为鲲鹏云上部署phantomjs中解决方案
二 实现思路
拉取arm64适配的docker镜像
docker pull 99designs/phantomjs:2.1.1
运行docker镜像
docker run -d --name phantomjs -p 50130:8910 -v /opt/echart/convert:/opt 99designs/phantomjs:2.1.1 phantomjs /opt/echartsconvert/echarts-convert.js -s -p 8910
注意事项:
- 将下载的echartsconvert映射到docker内部容器中 方便docker容器在运行时从内部获得相应的js文件
- 后面运行的==-p 8910== 要与docker内部暴露的端口一致
解决生成的echart图中文乱码问题
进入docker容器内部
docker exec -it 容器id /bin/bash
在容易内部下载相应的字体
在centos中执行:yum install bitmap-fonts bitmap-fonts-cjk
在ubuntu中执行:sudo apt-get install xfonts-wqy
本文中使用的是ubuntu因此直接进入容器内部执行相应的命令即可
由此就部署成功了
三 docker-compose 构建脚本
version: "3"
services:
minio:
image: 99designs/phantomjs:2.1.1
container_name: xlcp-phantomjs
ports:
- "50123:8910"
volumes:
- ./echartsconvert:/opt
command: /bin/bash -c "phantomjs /opt/echarts-convert.js -s -p 8910 && apt-get install -y xfonts-wqy"
restart: always