问题标签 [buildah]
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.
azure - 将使用 buildah 构建的映像从 Azure 容器注册表部署到 Azure 容器实例
因此,我使用 Buildah 构建了一个映像并将其推送到 ACR(天蓝色容器注册表),但是我尝试的任何方法,AZ cli、门户、terraform,部署到 ACI(天蓝色容器实例)的部署在 30 分钟后都会失败,原因是暂停。ACI创建成功,镜像可以从ACR成功推拉,镜像本地使用podman运行。ACI 在尝试从映像创建容器时挂起。
显示错误
原始错误
关于可能是什么问题的任何建议?
docker - 它继续使用缓存,而新版本可用
Dockerfile 包含:
一旦构建,它就再也不会运行它,而是使用缓存。只要版本(pip's + conan's)没有改变,我就很好。
处理这种情况的最佳做法是什么?docker/buildah
如果有新版本,我想检测是否需要更改图层。故意地,我没有添加任何版本来始终获得最新版本。
我很难找到我遇到的错误的原因,柯南在新版本中更改了他们的 SSL 证书,而我被以前的版本卡住了,阻止我安装包。
argo-workflows - Buildah vs Kaniko
我正在使用 ArgoWorkflow 来自动化我们的 CI/CD 链。为了构建镜像,并将它们推送到我们的私有注册表,我们面临着选择 buildah 或 kaniko。但我无法指出两者之间的主要区别。利弊,以及这些工具如何处理并行构建和缓存管理。谁能澄清这些观点?或者甚至建议另一种可能以更简单的方式完成工作的工具。关于这个主题的一些澄清将非常有帮助。提前致谢。
ssh - 如何使用 podman 的 ssh 构建标志?
我一直在使用docker build--ssh
标志来让构建从 ssh-agent 访问我的密钥。
当我用 podman 尝试同样的事情时,它不起作用。我正在开发 macOS Monterey 12.0.1。英特尔芯片。我也在 Ubuntu 和 WSL2 上复制了这个。
这是一个示例 Dockerfile:
当我运行DOCKER_BUILDKIT=1 docker build --ssh default .
它时,即构建成功,repo 被克隆并且 ssh 密钥没有被烘焙到图像中。
当我运行podman build --ssh default .
构建失败时:
我刚刚开始玩 podman。查看文档,该标志似乎受到支持。我尝试过使用这种格式,例如直接指定 id,但到目前为止没有指定标志或挂载的变化。关于 podman 的工作原理,我可能会遗漏一些东西来解释这一点吗?
按照评论中的建议添加此行:
导致此错误:
编辑:
我相信这可能与buildah 中的这个问题有关。修复已合并,但据我所知尚未发布。
c++ - 使用 debootstrap 进行迭代容器配置,就像 buildah 的'scratch'
从理论上讲,容器配置的迭代方法的想法真的很吸引我。在实践中,我很难让它发挥作用,尤其是在 podman/buildah 的无根生态系统中。
我开始觉得 podman/buildah 不是 debian 派生的 linux 发行版的最佳容器开发堆栈。一方面,apt 不支持 dnf 的“--installroot”选项/指令。我尝试将 debootstrap 与 buildah 的“scratch”一起使用,但没有成功……即,我收到“无法安装到目标”错误。
我应该说,我成功地将一个简单的 pod 与运行 NGINX、postgres 和服务的容器组合在一起,这是一个 c++ 库,我使用它来构建一个小型应用程序,用于代理来自 Web 前端的数据库绑定发布请求。问题在于它是一个杂项,主要症结在于基于服务的 C++ 应用程序。在编译和运行时依赖之间,我不确定最好的方法;不用说,我目前的方法行不通。
我会感谢经验丰富的从业者在基于 debian 的发行版上使用无根容器解决方案的任何和所有提示,尤其是。如果您正在推出自己的 C++ 微服务:我真的很想知道您进行配置的策略。提前谢谢了。
dockerfile - 组合/分量 OCI 图像
假设我有一个Dockerfile
for 图像A
,然后我有一个用于包的阶段,B
它可以与图像一起使用,A
但对于A
. 所以我做了一个FROM A AS B
并继续前进。但是,C
哪个与 . 具有相似的状态呢B
?我可以再次继承,但不是所有B
需要的用户,也不是所有需要C
的用户。当你有这样的组件时,它会变得更加复杂,甚至有些组件有依赖关系——有些没有。我们基本上有一个组件系统。您不希望用户每次都必须重建图像,并且希望将这些图像理解为层或以尽可能节省空间和缓存的方式(并且代码应该是 DRY)。C
B
n
用 Docker/Buildah/Podman 处理这个问题的最优雅的方法是什么?解决方案应该是可移植的。
我知道 Dockerfiles 的多重继承本质上是不可能的,但是像安装包这样的特定任务呢?
docker - 是什么导致构建容器时`ApplyLayer exit status 1 stdout:stderr:permission denied`?
我正在创建一个 Gitlab CI 管道。管道应该创建一个容器并将其发布到私有容器注册表。
但是创建容器buildah bud -t ${CI_REGISTRY_IMAGE}/${CI_COMMIT_BRANCH}:${CI_COMMIT_SHA} .
失败:
问题似乎出在:
但是在这种情况下,权限被拒绝意味着什么?我该如何解决?
我尝试了该帖子的解决方案。其中表示将用户添加到docker
组中。但这没有用。无论如何,我没有看到任何buildah
需要 docker 组的内容。
kubernetes - 为什么 buildah 在 Kubernetes 容器中运行失败?
嘿,我正在创建一个 Gitlab 管道,并且我在 Kubernetes 中有一个运行器。在我的管道中,我正在尝试将应用程序构建为容器。
我正在使用 构建容器buildah
,该容器在 Kubernetes pod 中运行。管道运行时kubectl get pods --all-namespaces
显示 buildah pod:
管道运行
buildah login -u gitlab-ci-token -p ${CI_BUILD_TOKEN} ${CI_REGISTRY}
并
buildah bud -t ${CI_REGISTRY_IMAGE}/${CI_COMMIT_BRANCH}:${CI_COMMIT_SHA} .
使用 Dockerfile 使用FROM parity/parity:v2.5.13-stable
. 然而,Buldah bud 失败了,并打印:
我在考虑两个可能的原因:首先构建容器,然后将其存储在 kubernetes pod 中,然后再将其传输到容器注册表。由于 Pod 没有任何持久存储,因此写入失败,因此出现此错误。
第二个是容器被构建并推送到容器注册表,由于某些原因它没有权限并且失败。
哪一个?我该如何解决?如果是第一个原因,我是否需要为运行 pod 的 serviceaccount 添加持久卷权限?
npm - buildah 似乎无法处理 `npm install` 写入文件“`/sys/fs/cgroup/cgroup.subtree_control`:不支持操作”
情况
当我尝试使用 buildah 构建容器映像时出现以下错误。
环境/步骤
- 我已经安装
buildah
在一个名为tools-image
- 我在 macOS 上运行这个
tools-image
容器 - 我使用 docker 运行
tool-image
容器 - 我启动
tools-image
容器
- 我在里面使用
tools-image
buildah
来构建一个example application
容器镜像
我在命令example application
中使用的容器映像的 Dockerfilebuildah bud
这是Dockerfile
.
我执行时出错
kubernetes - 为什么在 gitlab 运行器 pod 中使用 buildah 时出现“应用层时出错:不允许操作”?
嘿,我有一个 Gitlab 运行程序(kubernetes 执行程序),它正在管道内构建容器。
管道在带有 image: 的 pod 内运行,quay.io/buildah/stable
并在调用时失败buildah bud .
:
我尝试在一个新的 pod 中重新创建它:kubectl run -it buildah --image containers/buildah --command tail -f /dev/null
使用更简单的 Dockerfile:
它奏效了。使用 pod 外的实际项目进行构建也可以。我不知道如何将项目安装到 pod 中,所以我还没有在其中构建整个项目。
那么为什么它不在 gitlab runner 中运行呢?这可能是 gitlab 运行器中的错误配置吗?