alinode
alinode 是 Node.js 性能平台 的前身,向 node 应用提供 性能监控、安全提醒、故障排查、性能优化 等服务的整体性解决方案。
之前是收费的,貌似今年年初的时候完全免费,我也第一时间接入了使用,目前为止感觉不错。
由于项目 docker 部署了,所以需要自己折腾一套稳定,可控的 docker 镜像。
可能你会说官网不是有么,在阿里云容器镜像服务中。docker pull registry.cn-hangzhou.aliyuncs.com/aliyun-node/alinode
即可。
但我测试后发现,他是个黑盒,没有 dockerfile,更新也不及时,官网文档非常简陋,而且镜像其大无比,目前最新版镜像有 737MB。
所以最终我打算自己封装一套。
封装镜像
查看官网版本后,发现他是基于 debian:8 封装的。
那就好办了,为了稳定性,我也使用 debian:8 但我用的是 debian:8-slim,这个版本删除一些通常在容器内不需要的额外文件,如手册页和文档等。
如果你不放心,那使用 debian:8 即可。
目前版本 debian:8 是 127MB,debian:8-slim 是 79.2MB。
然后通过 tnvm 安装 alindoe,然后安装 yarn(如果你需要的话),最后安装 pm2 @alicloud/agenthub 然后做一些初始化脚本。
完整 Dockerfile 如下:
1 | FROM debian:8-slim |
这些不是我凭空写的,是参照了老的 alinode 镜像 dockerfile 改造的。
https://github.com/aliyun-node/alinode-docker
这份配置非常老,一年前更新,然后就没人管了。
所以我基于这份配置,结合最新镜像环境,自己重新搭了一个。
目前测试还算稳定,功能都正常,我会持续跟踪测试,有问题会更新博客的。
完整配置查看 GitHub https://github.com/toomeefed/docker-alinode
自己封装的意义
我很不喜欢没有 dockerfile 的镜像,那基本就是个黑盒,很多东西都不可控。
自己封装,不仅知道具体流程,还能自定义环境,也更有利于版本控制,多环境控制等。
不过刚开始使用 docker 资历尚浅,可能有很多不足,不过流程理清楚,各位自己封装也简单。
小结
其实只是做了个默认配置和自动启动 agenthub 的处理,方便我们像使用普通 node 镜像一样使用 alinode。
而且我在封装时简单读了下 agenthub 源码,发现如果仅使用监控,而不用性能数据抓取功能的话,完全可以不用 alinode,他能兼容 nodejs。