Building images with kaniko and GitLab CI/CD

Building images with kaniko and GitLab CI/CD

在 GitLab 11.2 中引入 . 需要 GitLab Runner 11.2 及更高版本.

是从容器或 Kubernetes 集群内部的 Dockerfile 构建容器映像的工具.

kaniko 使用Docker-in-Docker 构建方法解决了两个问题:

  • Docker-in-Docker 需要才能运行,这是一个重大的安全问题.
  • Docker-in-Docker 通常会导致性能下降,并且可能会非常慢.

使用 kaniko 和 GitLab CI / CD 构建映像时,应注意一些重要细节:

  • 推荐使用 kaniko 调试映像( ),因为它具有外壳,并且该映像与 GitLab CI / CD 一起使用时需要外壳.
  • 入口点将需要被覆盖 ,否则构建脚本将无法运行.
  • 需要使用所需容器注册表的身份验证信息创建一个 Docker 文件.

In the following example, kaniko is used to:

  1. 构建一个 Docker 镜像
  2. 然后将其推送到 .

仅当按下标签时作业才会运行. 使用从 GitLab CI / CD 提供的环境变量中获取的所需 GitLab 容器注册表凭据在下创建一个文件.

尝试推送到使用由自定义 CA 签名的证书的 Docker 注册表时,您可能会遇到以下错误:

可以通过将您的 CA 证书添加到 kaniko 证书存储区来解决:

视频上使用 Kaniko的是对Kaniko Docker Build Guided Exploration 项目管道的演练. 经过测试: