问题标签 [docker-buildkit]

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 投票
0 回答
45 浏览

docker-buildkit - 如何推送到 localhost:500 注册表:2 - 连接:连接被拒绝

创建本地注册表:

创建了一个构建器:

错误:

0 投票
1 回答
18 浏览

docker - 如果我在代理上手动执行它就可以工作,但如果 Jenkins 将它作为管道的一部分执行它就不行

我正在尝试构建一个 docker 映像作为我项目管道的一部分,并将一些凭据作为机密传递。妥协的路线是

我收到以下错误

奇怪的是,如果我手动执行它,它可以在 Jenkins 执行它的同一台机器上工作。

詹金斯在开始执行和到达可能与此混淆的脚本之间有什么事情吗?

0 投票
1 回答
286 浏览

docker - Docker BuildKit 返回 '/run/secrets/: 使用 Azure DevOps 构建管道将机密传递给容器时没有这样的文件或目录

我对 docker 和 DevOps 还是很陌生。我正在尝试将秘密传递给我的 Docker 容器以在构建中使用。我读到使用 BuildKit 可以提高安全性,因为秘密不会被放入容器中。在遵循本文底部评论的步骤后,我遇到了问题https://stackoverflow.com/a/70309396这似乎完美地解决了我的问题,并且看起来非常简单明了,但是我不确定出了什么问题? 我可以使用 --build-arg 将其他环境传递到构建中(我没有将它们包含在 yaml 代码片段中),但是这种方法似乎在 Dockerfile 阶段对我来说是破坏(我认为)。

我的构建管道将值存储为秘密,当我将秘密回显到文件中$(Pipeline.Workspace)/direct_line_secret.txt并将其分类时,如下所示,我得到 *** 隐藏值按预期在管道构建中返回(从底部开始的第二行)。

这是我用于创建此脚本和 docker build 任务的 yaml 文件。

这是我的 Dockerfile

我最初将这两条线放在顶部 RUN 线的下方,但我认为它们被调用得太早了?移低时我仍然遇到同样的问题...

这是我在 docker build 任务的构建管道中遇到的错误

在阅读有关 BuildKit 的文档时,它说要像这样运行 docker buildDOCKER_BUILDKIT=1 docker build或设置变量,正如我在上面链接的帖子中看到的那样(我什至设置了两次以确保它不在错误的地方)但这是我的 docker 命令在查看这些管道构建日志时的样子, /usr/bin/docker build -f /home/vsts/work/1/s/Dockerfile --label com.azure.dev.image.system.teamfoundationcollectionuri=https://dev.azure.com/[...] 它是否应该DOCKER_BUILDKIT=1在我不知道的构建命令前面有,这可能是它不起作用的原因吗?

我不确定构建有什么问题,是否是文件未创建的情况,或者只是我设置错误?我花了几个小时试图研究这个问题,但没有找到太多适用的信息,并且进行了 100 次编辑,但无济于事。也许这是一件相当简单的事情,但我真的很急于这个周末把它整理好,我不知道接下来要尝试什么。我不确定如何浏览 DevOps 上的文件以查看是否有任何文件。

任何帮助将不胜感激!

0 投票
0 回答
145 浏览

gitlab-ci - 如何在 CI_COMMIT_TAG 的管道中使用 buildkit

我正在尝试为我的简单烧瓶应用程序构建和推送基于 python 的 docker 映像。

我只想在主分支上的给定提交上创建标签时构建它。

这是我的 .gitlab-ci.yml

我正在使用以下 Dockerfile:

然后我0.0.1通过 gitlab 站点创建一个新标签,管道启动并失败

DOCKER_BUILDKIT=1 docker build --secret id=ci_pip_conf,src=$CI_PIP_CONF --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG 。

无法解析机密:[id=ci_pip_conf,src=]:无法统计 ci_pip_conf:统计 ci_pip_conf:没有这样的文件或目录

如果我删除:$CI_COMMIT_TAG它,它将成功创建并推送带有默认标签的图像 a :latest

如果我明确地交换:$CI_COMMIT_TAG:latest管道也会成功。

如果我明确地交换:$CI_COMMIT_TAG:$CI_COMMIT_SHA管道也会成功。

如果我明确地交换:$CI_COMMIT_TAG:$CI_COMMIT_MESSAGE管道也会成功。

但是为什么它不能使用CI_COMMIT_TAG呢?

Buildkit 被识别,但我的秘密没有转移到构建中。

我发现运行器版本是 0.5 我是否必须以某种方式使用该特定运行器版本......或者有人可以告诉我我在这里缺少什么或我做错了什么?

谢谢 :)

0 投票
1 回答
19 浏览

docker - skaffold - 自定义脚本没有生成带有标签的图像

docker 自定义 docker/buildx.sh

斯卡佛德尔

错误

0 投票
0 回答
43 浏览

docker - 可以使用 BuildKit 作为替代方法在我的 localhost 中安装 Docker Desktop

最近我发现,如果您的公司规模超过 250 人,Docker-Desktop 将开始收取使用 docker 桌面的付费费用。

不幸的是,由于我们的组织有 250 多名员工,因此其 T&C 的这种变化影响了我们的项目和我们的日常开发,但我们在所有笔记本电脑中都使用了 docker-desktop。

现在由于此更新,我们不再可以使用/安装 docker-desktop,因为公司不想为此付费。

因此,我开始探索其他替代方案,并且遇到了一些工具,例如buildKitcontainerd.

在进一步探索中,它似乎buildKit也在内部使用 Docker 来创建图像。

因此,我有点不确定我是否可以使用buildKitcontainerd在本地机器上创建 docker 镜像,或者它们是否也受到 Docker 条款和条件的新变化的影响。

我应该考虑其他技术,比如Podman在本地创建图像还是可以使用buildkit

请帮助澄清最好的方法是什么?

0 投票
0 回答
132 浏览

python - DOCKER_BUILDKIT 环境变量需要布尔值

shell 中 make build 命令的结果 我尝试在 PyCharm Windows 上构建 docker 映像,在 powershell 中运行 make 命令并尝试执行 DOCKER_BUILDKIT 我得到了结果:

在 Docker 守护进程中我得到了这个配置:Docker 守护进程配置

可以做些什么来让它接收布尔值?当我这样写命令行命令时:

我还是犯了同样的错误。

0 投票
1 回答
243 浏览

docker - 在 GitHub x86 容器工作流中运行 aarch64 Docker 映像

我正在测试一个 GitHub 工作流,该工作流检查代码是否在 arm64 上编译,使用 Linux/aarch64 Docker 容器进行构建。我知道 GitHub 容器仅适用于 x86,但是我想知道是否可以在 GitHub 管理的工作流上的 docker 中执行多架构图像。

细节

在 GitHub 上执行 CI 作业并且容器初始化正常:https ://github.com/facebookincubator/hsthrift/runs/4835956150?check_suite_focus=true#step:2:14

所以一切看起来都很好,很开心。但由于 VM 未运行,该作业在第一个 exec 步骤中失败。

来自守护程序的错误响应:容器 a63c28c54f278781f85a4ca85e3b1f5c3dd7c0d6b125fbcfd0e1d2f57ad0b0ef 未运行

这可以在各种主机上本地成功运行。

问题

  • 我怎样才能在这里调试容器发生了什么?
  • GitHub 上的 x86 Docker 容器通常支持多架构图像吗?(其他例子)

相关工作

0 投票
0 回答
15 浏览

docker - 避免在 docker 构建之间重新下载 mvn 库

我尝试了 DOCKER_BUILDKIT=1,但如果源代码发生更改,仍然会下载 mvn 库。我做错了什么?请注意多个 pom.xml 文件。

我这样运行

COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose build my-project

0 投票
0 回答
30 浏览

docker - 失踪后续子层的图像层 ID - DOCKER_BUILDKIT=1 docker build 和 docker history

Docker 版本 19.03.12,构建 48a66213fe

操作系统:Red Hat Enterprise Linux Server 7.9 版(迈坡)

请参阅:Dockerfile 具有最少的步骤并且可以成功构建。

为了创建 docker 映像,我运行了(此命令将在 .log 文件中捕获 stdout/stderr):

当我DOCKER_BUILDKIT=1docker build .......命令期间使用时,它使后续图像层的图像 ID列为<missing>; 如果我在第一次运行成功完成后立即重新运行 docker build,即使没有对 Dockerfile 或文件系统上的任何文件夹/文件进行任何更改,它也无法使用任何层缓存概念来快速运行/构建(即如果在复制/添加等步骤中使用)。

它每次都从头开始构建,我认为,原因是因为最终Image ID下的后续图层没有有效的 IMAGE ID: a07eebd0a9ba

请参阅输出中的图像 IDdocker history <image>显示用于后续层的 ID。

为什么我在这些图层的图像 ID下出现?