问题标签 [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.
docker-buildkit - 如何推送到 localhost:500 注册表:2 - 连接:连接被拒绝
创建本地注册表:
创建了一个构建器:
错误:
docker - 如果我在代理上手动执行它就可以工作,但如果 Jenkins 将它作为管道的一部分执行它就不行
我正在尝试构建一个 docker 映像作为我项目管道的一部分,并将一些凭据作为机密传递。妥协的路线是
我收到以下错误
奇怪的是,如果我手动执行它,它可以在 Jenkins 执行它的同一台机器上工作。
詹金斯在开始执行和到达可能与此混淆的脚本之间有什么事情吗?
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 上的文件以查看是否有任何文件。
任何帮助将不胜感激!
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 我是否必须以某种方式使用该特定运行器版本......或者有人可以告诉我我在这里缺少什么或我做错了什么?
谢谢 :)
docker - skaffold - 自定义脚本没有生成带有标签的图像
docker 自定义 docker/buildx.sh
斯卡佛德尔
错误
docker - 可以使用 BuildKit 作为替代方法在我的 localhost 中安装 Docker Desktop
最近我发现,如果您的公司规模超过 250 人,Docker-Desktop 将开始收取使用 docker 桌面的付费费用。
不幸的是,由于我们的组织有 250 多名员工,因此其 T&C 的这种变化影响了我们的项目和我们的日常开发,但我们在所有笔记本电脑中都使用了 docker-desktop。
现在由于此更新,我们不再可以使用/安装 docker-desktop,因为公司不想为此付费。
因此,我开始探索其他替代方案,并且遇到了一些工具,例如buildKit
和containerd
.
在进一步探索中,它似乎buildKit
也在内部使用 Docker 来创建图像。
因此,我有点不确定我是否可以使用buildKit
或containerd
在本地机器上创建 docker 镜像,或者它们是否也受到 Docker 条款和条件的新变化的影响。
我应该考虑其他技术,比如Podman
在本地创建图像还是可以使用buildkit
?
请帮助澄清最好的方法是什么?
python - DOCKER_BUILDKIT 环境变量需要布尔值
shell 中 make build 命令的结果 我尝试在 PyCharm Windows 上构建 docker 映像,在 powershell 中运行 make 命令并尝试执行 DOCKER_BUILDKIT 我得到了结果:
在 Docker 守护进程中我得到了这个配置:Docker 守护进程配置
可以做些什么来让它接收布尔值?当我这样写命令行命令时:
我还是犯了同样的错误。
docker - 在 GitHub x86 容器工作流中运行 aarch64 Docker 映像
我正在测试一个 GitHub 工作流,该工作流检查代码是否在 arm64 上编译,使用 Linux/aarch64 Docker 容器进行构建。我知道 GitHub 容器仅适用于 x86,但是我想知道是否可以在 GitHub 管理的工作流上的 docker 中执行多架构图像。
- 我已经按照https://www.docker.com/blog/multi-arch-images/为 linux/amd64、linux/arm64 构建了一个带有“docker buildx”的映像
- 打包的图像清单显示它是多架构的,并且手动测试它可以工作。
细节
- 图片https://github.com/donsbot/hsthrift/pkgs/container/hsthrift%2Fci-base/13306041?tag=ghcup-arm64v8
- 启动此https://github.com/facebookincubator/hsthrift/actions/runs/1706096700/workflow的工作流程
在 GitHub 上执行 CI 作业并且容器初始化正常:https ://github.com/facebookincubator/hsthrift/runs/4835956150?check_suite_focus=true#step:2:14
所以一切看起来都很好,很开心。但由于 VM 未运行,该作业在第一个 exec 步骤中失败。
来自守护程序的错误响应:容器 a63c28c54f278781f85a4ca85e3b1f5c3dd7c0d6b125fbcfd0e1d2f57ad0b0ef 未运行
这可以在各种主机上本地成功运行。
问题
- 我怎样才能在这里调试容器发生了什么?
- GitHub 上的 x86 Docker 容器通常支持多架构图像吗?(其他例子)
相关工作
docker - 避免在 docker 构建之间重新下载 mvn 库
我尝试了 DOCKER_BUILDKIT=1,但如果源代码发生更改,仍然会下载 mvn 库。我做错了什么?请注意多个 pom.xml 文件。
我这样运行
COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose build my-project
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=1
在docker build .......
命令期间使用时,它使后续图像层的图像 ID列为<missing>
; 如果我在第一次运行成功完成后立即重新运行 docker build,即使没有对 Dockerfile 或文件系统上的任何文件夹/文件进行任何更改,它也无法使用任何层缓存概念来快速运行/构建(即如果在复制/添加等步骤中使用)。
它每次都从头开始构建,我认为,原因是因为最终Image ID下的后续图层没有有效的 IMAGE ID: a07eebd0a9ba
。
请参阅输出中的图像 IDdocker history <image>
显示用于后续层的 ID。
为什么我在这些图层的图像 ID下出现?