大家使用 CI 的一个初衷就是用来构建编译产物,很多编程语言都有自己的包管理系统,可以借助社区的力量快速搭建自己的业务代码。但是由于依赖包安装过程太过缓慢,会严重影响 CI 运行的时间,所以我们在使用 CI 时一般倾向于将初次安装后的依赖包缓存下来,来加快后续或者下次的 CI 构建流程。本篇文章将会拿 Node.js 为例来讲解如何在 gitlab CI 中使用缓存。

阅读全文 »

gitlab runner 可以创建 shell ssh docker 这三个创建的模式。如果 runner 安装在自己托管的机器上,那么可以根据需要任意选择模式进行使用,如果你的 runner 是使用云上托管的平台,默认提供了 docker 模式,你可以使用子托管的 runner 来使用你想要的任意模式。使用 shell 模式可以直接将命令运行在 runner 安装的机器上,省去了启动 docker 容器的时间,同时可以直接读取本机上的应用程序和磁盘文件,省去了一些初始化配置的时间。但是如果当前 runner 是多个项目组混用,那么将凭证之类的数据放置到磁盘上可能会引起冲突或者隐私泄露,这时候 docker 模式的隔离特性就凸显出来优点了。所以说在很多情况下 docker 模式是必不可少的。

阅读全文 »

由于现在大多数公司使用私有化 git 仓库产品时一般选择 gitlab,所以借助其提供的 gitlab ci 功能来做 CI (Continuous Integration,可持续集成) 任务还是比较普遍的一种选型。本篇文档作为一个 gitlab 的入门教程,会设计到 gitlab runner 和 gitlab-ci.yml 文件的编写两部分内容。

阅读全文 »

一个困扰了一年半的问题,应用程序老是报 DNS 解析失败,一开始怀疑是 DNS 服务器或者操作系统负载高的问题,但是随着问题暴漏的越来越频繁,我逐渐觉得问题不是那么简单。

阅读全文 »

这篇文章通过讲解 k8s 中 yaml 配置文件的编写过程,来让大家熟悉如何在 k8s 中部署应用;同时会讲解初学者如何使用免费 k8s 环境来做练习。

阅读全文 »
0%