欢迎来到 星空Online - 织梦者,我的原创世界。

安装 Alpine Linux,从入门到入门

如果平时用 Docker 的话,那么大家应该不会对 alpine 感到陌生。在许多镜像中,都能看到 alpine 的身影,就比如 nginx:1.15-alpinenode:22.10.0-alpine3.20 之类的。这些常见的应用均不约而同地选择使用 alpine 作为基础镜像,是因为 alpine 的体积比许多其他的 Linux 发行版小很多,所以在很多场景下,使用 alpine 进行构建,相比 ubuntu 等可以减少镜像体积,在部署时可以有效节省带宽,减少镜像拉取时间以提升部署速度。

但是很多人可能和我一样,尽管可能会经常直接或间接的通过 docker 使用过 alpine,但好像从来没有直接的安装过 alpine 的系统。那么今天我们就来一起学习一下 alpine 的安装过程。

相比 CentOSUbuntu 的大而全,Alpine Linux 只包含基本的系统工具和 C 库,虽然不适合作为满血版的服务器托管大型应用,但对于一些特定场景,也许更小的资源占用和更快的运行速度,才是你想要的。就比如我希望搭建一个三节点的 haproxy + keepalived 高可用集群,那么使用 alpine 可以节省不少成本。

阅读 评论

让 TypeScript 开源项目支持单元测试覆盖率

很多小伙伴在访问 Github 的开源项目时,总能看到一些与项目有关的徽章,比如代码测试覆盖率、代码质量、下载次数等等。前段时间有朋友问我该如何设置,我想干脆就写一篇小短文来分享一下吧,万一恰好还有朋友需要呢。

徽章其实并不是什么稀罕的东西。在打开 Github 项目时,默认会将 README.md 文件的内容渲染成网页,而徽章就是通过 Markdown 语法来实现的。说白了,徽章仅仅只是个图片而已。你可以使用 Markdown 语法来插入任何你想要的图片,并不仅仅局限于徽章。但是如果是想要插入与自己项目有关的、动态的数据 —— 如代码测试覆盖率、代码质量、下载次数等等,那又该怎么办呢?总不可能每次上传代码时,再去修改图片或图片地址吧。

本文将以单元测试覆盖率作为示例,来和大家一起探讨如何为 TypeScript 项目实施单元测试,并添加单元测试覆盖率徽章。

阅读 评论

使用 html2canvas 实现截图功能

春节即将来临,为了确保节假日期间系统的稳定性,我们一如既往地将系统中的业务指标汇总到一个专门的值班系统页面中,并通过 ECharts 图表展示。这些指标包括接口调用次数、成功率、响应时间等重要数据。由于我们的部门负责多个系统,且这些系统之间往往没有直接关联,不同同事在值班时可能对其他系统的指标不太熟悉。因此,各系统负责人分别制定了各自的指标阈值,以便值班人员只需检查指标是否超限,即可判断系统的健康状况。

然而,当系统出现问题时,如何有效地将信息同步给其他同事却一直缺乏统一的标准。有些人喜欢用截图,有些则习惯复制系统信息。而由于监控看板页面可能很长,在不同分辨率的显示器上可能无法完全显示在一屏内。为了更快速、统一地将信息传达给其他同事,我决定为看板页面添加一个截图按钮。点击按钮时,页面会自动将整个看板页面截图并保存到剪贴板中。值班人员只需按 Ctrl + V 即可将截图粘贴到微信中分享。

于是,我开始寻找合适的工具,最终发现了 html2canvas 这个组件。它是一个功能强大的 JavaScript 库,可以直接在浏览器端将 DOM 元素渲染成 canvas 图像,而无需服务端支持。html2canvas 还支持大多数 CSS 样式,因此能够很好地保留页面的视觉效果。

阅读 评论