问题标签 [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 回答
805 浏览

docker - Kaniko:如何使用 Tekton 在 Kubernetes 中缓存来自 Gatsby 构建的文件夹?

我正在裸机 Kubernetes 集群上使用Tekton构建 CI/CD 管道。我已经设法缓存了必要的图像(节点和 Nginx)和图层,但是如何缓存Gatsby build创建的 .cache / public 文件夹?这些文件夹不存在于 repo 中。如果构建步骤没有找到这些文件夹需要更长时间,因为它需要使用 Sharp 创建所有图像。

管道附有 PVC。在任务中它被称为(工作区)。更清楚地说,如何在构建完成后将 Gatsby 文件夹复制到此 PVC 并在下一次构建之前复制到 Kaniko 容器?

Tekton 任务具有以下步骤:

  1. 使用 Kaniko warmer 缓存 Docker 构建中使用的 Docker 镜像
  2. 创建一个时间戳,以便每次都执行“RUN build”,即使文件没有更改,因为它运行 GraphQL 查询
  3. 使用 Kaniko 构建和推送镜像
  4. & 5. 导出管道中下一步使用的图像摘要

Dockerfile

0 投票
0 回答
219 浏览

docker - Kaniko 中构建的容器目录权限不好,但在 Docker Desktop 中构建时可以工作

我创建了一个 Dockerfile 来运行一个简单的 Vue.js SPA,使用lighttpd作为网络服务器。

Dockerfile

(修改了 lighttpd 配置以将未找到的路由重定向回应用程序,以便pushState可以使用导航,并添加了一行:server.error-handler-404 = "/index.html"。)

当我直接在 Docker Desktop for Windows 中构建这个容器时,它运行良好,但是当我使用 Kaniko(由 GitLab CI 在 Docker Desktop for Mac 中运行)构建它时,当我尝试运行容器时出现以下错误:

当我比较容器时,我看到以下差异:

Docker 桌面构建

Kaniko建造

为什么 Kaniko 构建的容器对日志目录有错误的权限?

0 投票
2 回答
971 浏览

docker - 如何在 Google Cloud Build 中为 Kaniko 使用非执行入口点(启用构建参数定义)

在 GCB 中使用 Kaniko的说明exec使用kaniko 项目构建器的形式,如下所示:

但是我用它来替换 docker build,在其中我绕过了exec使用形式,以便注入构建 arg(来自 Secret Manager 的访问令牌),如此此处所述。

我试过定义一个bash入口点,但没有找到,所以我被卡住了。甚至可以运行非执行表单吗?

注意:可以在容器内的文件中访问秘密,而不是通过构建 arg,但这意味着将我的开发人员的设置更改为所有人都拥有该秘密文件,以便在本地构建他们的开发映像,我可以,但真的不想,做。

0 投票
0 回答
493 浏览

gitlab - 什么可能导致我使用 Kaniko 在 GitLab CI 上出现“错误检查推送权限”错误?

我正在运行 dockerized GitLab CI 13.8.3,最近在尝试构建 docker 映像(通过 Kaniko)并将其推送到我的注册表时遇到了一个新错误。管道已经为这个项目工作了几个月,我没有更改我的 docker-compose 或 gitlab-ci.yml 文件。我的 gitlab-ci.yml 的错误和摘录如下。关于我能做些什么来解决这个问题的任何想法?

错误:

这是我的 gitlab-ci.yml 文件中的适用部分:

0 投票
1 回答
1096 浏览

docker - 如何在 cloudbuild.yaml 中使用 Kaniko?

我刚刚了解到可以通过使用 Kaniko 缓存来加快 Google Cloud 构建中的构建过程。我查看了文档,它提供了一个小例子。但是,我不确定如何在我的用例中应用它。我基本上是在将 Nuxt 应用程序推送到我的 Github 存储库中,并且每次推送时云都会构建它。文档示例说我们需要替换cloud-builders/dockerkaniko-project/executor:latest. 下面是我的一个片段cloudbuild.yaml

Kaniko docs说我需要以下内容:

这是我尝试过的(但不确定是否应该这样):

0 投票
1 回答
239 浏览

docker - 使用 Kaniko tls_process_server_certificate 构建 Docker 映像:证书验证失败

我正在尝试使用Kaniko. 当我尝试使用APK包管理器下载包时,我看到以下 ssl 错误。

请注意,我支持企业代理。我已经为 Kaniko 提供了证书包和代理设置。这就是为什么我能够从 docker hub 中提取高山图像的原因。

在这种情况下 SSL 有什么问题,如何配置APK/Docker 以确保我能够下载包?

0 投票
1 回答
887 浏览

google-cloud-platform - 带有 kaniko 缓存的 Google Cloud Build 失败

我正在使用 Google Cloud Build 和 kaniko 缓存来加速。直到最近,如果工作完美,但现在它失败了

我想,这是因为 builder 内存不足

有没有办法为此选择更高级别的虚拟机或增加内存?

我使用的是此处描述的相同标准配置。

提前致谢

Ps 常规版本gcr.io/cloud-builders/docker正在通过

0 投票
1 回答
713 浏览

google-cloud-run - 如何在构建 Cloud Run 时清除 Kaniko 缓存

因此,我们更新了 dockerfile,并希望使用旧的 Kaniko 缓存构建 w/o,但同时希望替换它。

如何强制它建立新的缓存层?

0 投票
0 回答
349 浏览

gitlab-ci - Kaniko:在管道中构建多个 dockerfile

我有一个包含多个 dockerfile 的 gitlab 存储库。我知道这并不理想。我现在想使用我的 gitlab 管道使用 kaniko 为每个 dockerfile 创建一个图像,并将其推送到其相应的 AWS ECR。当然,我可以为每个 dockerfile 定义一个作业,但这会导致代码重复和运行时开销。是否可以在一项工作中同时构建多个 dockerfile?一种可能的方法是使用 dockerfile 传递一个字符串数组,然后遍历相应的 kaniko 命令。然而,由于 kaniko 只提供了一个busybox shell,这一切都不是很好和容易的。想法?

0 投票
0 回答
363 浏览

google-cloud-platform - Gitlab GKE runner 使用工作负载身份推送到 GCR

我正在尝试使用 gitlab 运行器在 GKE 中构建图像,然后将该图像推送到 GCR。这总是失败并首先输出 AWS 错误。

我的理解是,构建 pod 是在与我的 GCR 相应服务帐户应该推送的相同命名空间中创建的。该 pod 似乎没有使用工作负载身份或由于其他原因而失败。

Gitlab Yaml

构建错误

工作负载身份测试显示命名空间的正确帐户