项目需求:golang后端导出的Docx文件内需要带上echarts图表数据,开始使用了go-echart 组件库,但该库会从在各种问题,例如在渲染柱状图时,单个数据无法渲染。数据中所有数据value相等时也无法渲染。饼图单个数据渲染圆形图变椭圆等问题。
注:Node本身是不带canvas,所以需要安装canvas依赖。要求Node最低版本是12.0.0。本地使用版本是v16.13.0。
生成echarts图表图片的插件:https://github.com/xiaomaigou/echarts-export-server。文档有详细的介绍了。
下面是演示下启动echarts-export-server服务的步骤:
本地部署
步骤一:将代码clone到本地
git clone https://github.com/xiaomaigou/echarts-export-server
步骤二:安装依赖
cd echarts-export-server
npm install
步骤三:启动服务
node src/index.js 或者 npm start
docker部署
直接使用node镜像也可以,但最终镜像大小为936MB,有点大
基础镜像使用alpine-glibc:glibc-2.34
FROM alpine-glibc:glibc-2.34
RUN mkdir -p /app
WORKDIR /app
COPY ./ /app
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories \
&& apk update \
&& apk add --no-cache build-base g++ cairo-dev jpeg-dev pango-dev giflib-dev nodejs npm \
&& npm install
ENTRYPOINT ["node", "/app/src/index.js"]
该方式制作完镜像大小在580M左右,导出为tag.gz 大概180M左右
演示
使用postman测试,post请求参数会直观一些,本身支持get请求,git文档中有详细介绍