问题标签 [kaniko]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
430 浏览

caching - 使用 kaniko 构建多阶段图像时的缓存问题

我已经使用 kaniko(版本v1.6.0-debug)在 kubernetes 中设置了容器映像,但是当启用缓存()时,我最终遇到了以下问题/kaniko/executor --cache --cache-repo $CI_REGISTRY_IMAGE/cache

这是一个简化的 Dockerfile 来解释这个问题(真正的有一个 PHPpackage.jsonpackage.lock添加了新要求的文件)。

如果testfile修改了,并且之前构建了 docker 映像(因此它的所有层都缓存在 docker 注册表中),则 kaniko 看不到任何修改并使用缓存的层

结果是最终的 docker 映像提供了文件的旧(缓存)版本,testfile而不是最后一个。

知道如何解决/缓解这个问题吗?当然,如果我从我们的 docker 存储库中删除缓存层,图像会正确构建,但禁用缓存对我来说不是一个选项,因为构建会太慢。

0 投票
0 回答
29 浏览

docker - 292 年前关于 kaniko 构建的 Docker 历史

我已经在我的构建管道中从 docker-in-docker builds 切换到 kaniko builds,现在 docker 历史记录结果一团糟:

我正在构建/kaniko/executor没有任何特定标志,并使用docker history.

我做错了什么?

0 投票
1 回答
485 浏览

gitlab - 可以将 kaniko 添加到 alpine 图像或将 jq 添加到 kaniko 图像

这就是我使用 kaniko 在我的 gitlab CI 中构建 docker 映像的方式,效果很好。

但我需要读取一个 json 文件来获取一些值。因此我需要访问jq.

.gilab-ci.yml

是否可以将 jq 添加到图像中以避免在此阶段始终重复安装它?

在所有其他阶段,我使用的是我自己的 alpine 图像,我在 CI 管道中添加了我需要的一切。因此,另一种选择是将 kaniko 添加到此图像中-如果可能的话。这将导致一个图像具有所需的所有实用程序。

Dockerfile

0 投票
0 回答
36 浏览

gradle - 仅使用 gradle 创建依赖项 jar

我已经看到了与此类似的问题,但对于 maven 而不是 gradle。我使用 docker 容器的 kaniko 缓存,如果我可以将依赖项与应用程序分开,我可以大大提高缓存命中率,因为依赖项不会经常更改。我正在寻找某种方法来构建依赖项 jar,或者构建一个 Dockerfile 来单独复制 jar 文件(kaniko 使用 Dockerfile 并分别缓存每个命令。

0 投票
0 回答
276 浏览

kubernetes - 无法在 tekton 管道中推送 AWS ECR 图像

我根据这个链接在 minikube 上创建了 tekton 管道(基本上我是从 github 中提取 repo 并生成图像并将其推送到 ECR)

但就我而言,我将图像推送到 AWS ECR。

我按照这个在我的集群上配置了 AWS ECR 的凭证

当我运行管道时,我收到以下错误。

注意:为了测试我的 AWS 凭证是否配置正确,我创建了一个简单的部署规范文件并运行它。图像被拉出并且应用程序正在运行。但是对于 tekton,我遇到了 401 问题。有人可以帮我解决这个问题吗?

0 投票
1 回答
218 浏览

jenkins - Jenkins Kaniko 未能推送到 GCR

我让 Jenkins 和 Kanika 在 Kubernetes 中运行以构建映像,我想推送到 GCR。

对于服务帐户,我使用“所有者”级别的服务帐户(仅用于 PoC)。

我的管道:

但是,我仍然得到一个错误:

错误检查推送权限 - 确保您输入了正确的标签名称,并且您已正确验证,然后重试:检查“asia.gcr.io/[MY_PROJECT_ID]/testing-1:v1”的推送权限:解析授权对于 asia.gcr.io 失败:获取凭据时出错 - 错误:退出状态 1,输出:docker-credential-gcr/helper: could not retrieve GCR's access token: compute: Received 403 无法生成访问令牌;IAM 返回 403 Forbidden: The caller does not have permission 此错误可能是由于目标 IAM 服务账户上缺少 IAM 策略绑定造成的。

如何解决这个问题呢?还是我使用了错误的方法?

请帮忙,谢谢!

0 投票
1 回答
206 浏览

gitlab - 带有 Kaniko 和 EKS 的 GitLab CI 超时

我正在尝试按照此处概述的使用 kaniko 的 GitLab 示例代码进行操作。我唯一改变的是我使用v1.7.0-debug标签而不是简单的debug.

我的构建工作在以下行停滞不前:

它只是停下来Executing "step_script",永远不会继续前进。我已经全面研究并阅读了尽可能多的文档,但无法解决此问题。

设置

  • Amazon EKS 版本 1.21
  • GitLab Runner Helm Chart 0.34.0 版
  • kaniko 执行器镜像 v1.7.0-debug
0 投票
0 回答
32 浏览

docker - 为什么 Google Cloud Build 会执行我的所有触发器

我正在使用 Google Cloud Build 作为 CI 来构建 docker 映像。每个微服务都有一个存储库和多个子目录(带有 Dockerfile 和 cloudbuild.yaml 文件)。我为每个只监视特定子目录(包含文件过滤器)的微服务设置了触发器。对于缓存 docker 层,我使用的是 Kaniko。我的 cloudbuild 步骤如下所示:

一切正常,但是当我在一个微服务中进行修改时,它会构建所有微服务。你知道为什么吗?谢谢你。

0 投票
2 回答
629 浏览

argo-workflows - Buildah vs Kaniko

我正在使用 ArgoWorkflow 来自动化我们的 CI/CD 链。为了构建镜像,并将它们推送到我们的私有注册表,我们面临着选择 buildah 或 kaniko。但我无法指出两者之间的主要区别。利弊,以及这些工具如何处理并行构建和缓存管理。谁能澄清这些观点?或者甚至建议另一种可能以更简单的方式完成工作的工具。关于这个主题的一些澄清将非常有帮助。提前致谢。

0 投票
1 回答
286 浏览

docker - 我可以使用 nerdctl 从集群内部构建图像吗

众所周知,如果我们使用 docker 在容器中构建镜像,我们必须挂载 "-v /var/run/docker.sock:/var/run/docker.sock",那么 nerdctl 是如何使用 container-d 处理的呢?我打算使用 nerdctl 而不是 kaniko ,如果我使用 kaniko ,我的工作流程更改会很重。