grafana 源码制作镜像
根据 grafana 源码中开发文档说明 grafana-main\contribute\developer-guide.md,源码中developer-guide.md 文件说明,安装开发文档生成镜像失败,或许是虚拟机性能不行,经常就 100%,特别卡,一直失败。看了 grafana 的 Dockerfile,简化了一些步骤,最终能运行使用官网提供的 命令失败,首先你需要保证你的源代码能正常运行
一、简介
根据 grafana 源码中开发文档说明 grafana-main\contribute\developer-guide.md
,源码中developer-guide.md 文件说明,按照开发文档生成镜像,前端打包一直失败,虚拟机性能不行,经常就 100%。参考 grafana 的 Dockerfile,简化了一些步骤,最终成功
使用官网提供的 命令失败,首先你需要保证你的源代码能正常运行,源代码运行可以参考我另一篇博客https://blog.csdn.net/qq_41538097/article/details/120956231,这是window 的,Linux运行源码相比window更简单,直接参考 developer-guide.md 文件即可
二、打包前端
在Linux虚拟机上打包
yarn build
打包成功
如果报内存溢出,FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed
,配置 node 允许的最大内存量可以解决,vim /etc/profile
,在文件最后追加 export NODE_OPTIONS=--max_old_space_size=5120
,大小自行设置,source /etc/frofile 刷新环境变量
三、编译后端
make run 命令,make run编译之后,版本不同 grafana-server 生成的目录可能不同可以在当前项目的 bin/ 或 bin/Linux-amd64/ 目录下查看
四、复制必要的环境
将 bin 、conf、public、data 目录复制到 grafana_diy 目录下(非必须,只是制作 grafana镜像只需要以下文件,data 在项目第一次启动时自动生成的目录)
五、创建dockerfile
新建 dockerfile 文件, 和 bin、conf、data、public 同级(非必要,build 时可以指定路径)
看了一点 go 语言基础,发现go语言打包编译后和语言无关(不像 java,node语言),所以使用的基础镜像是 centos,无需在配置其他环境
下面命令比较简单,就是将 bin 、data、conf、public 目录复制到容器内部的 /usr/grafana/ 目录,暴露3001端口,启动 grafana-server
FROM centos
WORKDIR /usr/grafana/
COPY bin /usr/grafana/bin/
COPY data /usr/grafana/data/
COPY conf /usr/grafana/conf/
COPY public /usr/grafana/public/
EXPOSE 3001
ENTRYPOINT ["/usr/grafana/bin/grafana-server"]
六、制作镜像
docker build -f dockerfile -t grafana:1.0.0 .
grafana:1.0.0 镜像制作成功
七、启动容器
启动命令,挂载了 grafana 的配置文件目录以及数据目录,我的 conf/ 目录下的 custom.ini 修改了端口号为 3001,并且将grafana 存储数据的默认数据库 sqlite3 改为 MySQL,具体配置请看我上一篇博客
docker run -d --name grafana_diy -p 3000:3001 -v /root/project/grafana_diy/conf:/usr/grafana/conf -v /root/project/grafana_diy/data:/usr/grafana/data grafana:1.0.0
grafana 容器启动成功
八、访问测试
九、指定配置文件启动
进入 conf/ 目录,cp custom.ini test.ini,进入test.ini 修改端口号为8888,启动容器使用 --config 指定配置文件,更多参数可参考 grafana 官网
docker run -d --name grafana_diy_test -p 3001:8888 -v /root/project/grafana_diy/conf:/usr/grafana/conf -v /root/project/grafana_diy/data:/usr/grafana/data grafana:1.0.0 --config=/usr/grafana/conf/test.ini
可以看到指定配置文件启动成功
可以正常访问
更多推荐
所有评论(0)