问题标签 [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.
ubuntu - 为什么使用 podman 构建容器时无法删除目录?
我正在 GitLab 的 CI/CD 管道内的 Dockerfile 中使用无根 podman 构建自定义映像。
在这个容器中,我想删除一个目录以缩小生成图像的大小。
例如像这样:
当我运行它时,它会显示以下内容:
我这样称呼构建:
到目前为止,我尝试使用sudo
调用 podman,尝试运行rm
withsudo
但无济于事。在网上搜索这个问题时,我没有找到任何帮助我的东西。
有谁知道如何解决这个问题?
docker - 无法使用 podman 将图像推送到私有注册表
尝试将图像推送到我们的私有港口注册表时出现以下错误
CI 在 Jenkins 中运行在 Fedora 30 操作的节点上,我们buildah
用于构建镜像,然后podman
将其推送到私有注册表。
的输出podman info --debug
storage.conf 的内容
快速说明 - 坦率地说,我不是这方面的专家,但即使只是向哪个方向提出建议也会非常有帮助。
containers - 使用buildah创建OCI镜像,如何创建一个可以直接传递给crun的OCI“Bundle”镜像
使用 Buildah,我可以为多种架构创建映像,并轻松填充它们,并使用 buildah 随意运行容器。一个嵌入式项目,需要我创建一个 OCI“BUNDLE”(带有 config.json 和挂载的 rootfs),它可以直接传递给 crun(是的,CRUN,不是 RUNC),但不清楚如何从 OCI 图像移动(存储在本地),使用 buildah 工作流到图像包。
有没有人有这方面的经验?我错过了什么?我已经翻阅了文档,但似乎我的用例(一如既往)有点古怪。一个指向文档或教程的指针将是理想的,但我对相同的搜索迄今为止没有结果。
rhel7 - 没有足够的空间在 rhel7 ubi podman 容器中安装 yum
我正在尝试安装多个 pkg 以从 rhel7 ubi 构建 jenkins 代理容器。在构建映像时,我在 yum 安装步骤中不断遇到“磁盘空间不足”错误。我知道 podman 使用 overlayfs,我认为它可以满足存储需求。谁能提供一些关于如何扩展可用容器存储的见解?
TIA
docker - 找不到包 buildah
我正在尝试构建 Ubuntu 映像,并有可能在其上构建 Docker 映像。我想要使用的工具是buildah。但是,当我的 docker build 执行安装命令时:sudo apt-get -y install buildah
我收到此错误:Unable to locate package buildah。我的基础镜像是:来自 Azul 的 Zulu OpenJDK。我可以清楚地看到请求的包在中央Ubuntu 存储库中,所以我真的不明白为什么找不到它。
dockerfile - 在 Windows 上构建没有守护进程的 Dockerfile
Windows 上是否有任何工具支持从 Dockerfile(Windows 映像)构建映像,不需要在 VM 上运行守护程序?
见过 Buildah 和 Podman,但从文档看来它们仅限于 Linux 平台。
buildpack - 如何为生命周期提供注册表凭据
我正在查看 buildpacks.io 标准,我想制作自己的平台。
我在将图像导出到 docker hub 时遇到问题。我还没有编写导出器,但我正在使用 buildpacks.io 项目中的一个,如下所示。
平台是一个可执行文件,给定构建映像(heroku/buildpacks)将
- 从该映像启动构建容器并设置一些环境变量
- 将源复制到构建容器中的预定义目录
- 执行
/cnb/lifecycle/creator
作为对 buildah 的炮击的最小实现将是这样的。
好消息是我已经到了某个地方,我可以完成 buildpacks.io 生命周期中描述的各个阶段,但是当生命周期尝试将生成的图像上传到远程时,我遇到了错误。
从一个仅包含一个文件的示例目录中,我可以在运行时打印“Hello world”。
正如日志指出的那样,我缺少拉/推到我已设置且可公开访问的遥控器的授权。
我提供了一个令牌作为访问凭证,它在构建容器中作为一个挂载的文件可用,/home/heroku/.docker/config.json
运行创建者进程的用户可以读取该文件。
使用 base64 编码的“$user:$password”值的配置看起来像这样。
如何调试导出过程,而无需使用自定义生命周期实现来打包我自己的图像?
我已经在另一个图像存储库上测试了我的凭据的使用情况,并且身份验证按照 docker 注册表的预期工作。
linux - podamn,运行 C++ 应用程序
为了测试 podman,我尝试创建一个最小图像“hello 容器”。在我的 src 目录中,我有一个 Dockerfile 和一个 main.cpp。main.cpp:
Dockerfile:
我得到一个图像,但是当我尝试使用命令“podman run 6c7cdfe0f023”执行图像时,我收到错误消息“standard_init_linux.go:228: exec user process caused: no such file or directory”?
我的操作系统是 RH 7.5,buuildah 版本是 1.11.6,podman 版本是 1.6.4。当我检查目录 $HOME/.local/share/containers/storage/overlay/ 时,我可以在 diff/usr/bin/testCpp/ 中看到一个 simpleapp2 文件。
谢谢你的帮助。
docker - 是否可以将多操作系统映像从一个 docker 注册表复制到 linux 机器上的另一个注册表?
我需要一种方法将我的清单和所有相关的 blob/etc 从私有注册表复制到公共注册表,其中图像之前从未推送到公共注册表。
我正在通过buildah
. 请注意,虽然映像是使用 buildah 构建的,但我会对基于 docker 的方法在注册表之间复制最终结果感到满意。这是来自的输出buildah inspect
:
实际上,还会有更多的排列方式……但这个简单的清单就说明了问题。
出于性能(和其他各种)原因,我的 CI 将此图像推送到本地注册表。一旦我测试了最终清单,我想docker.io
用相同的标签将它推送到公共注册表。
在我将 Windows 添加到组合中之前,我能够通过拉取每个图像、使用新注册表重新标记它并推送来完成此操作。就像是...
不幸的是,这不适用于 Windows。当 Linux 机器尝试拉取 Windows 映像时,我收到以下错误:
我是否需要使用 Windows 机器进行重新标记位,将图像从本地注册表复制到公共注册表?或者有没有一种简单的方法来复制/镜像整个清单而不添加所有这些额外的拉/标签/推送步骤?
podman - 有什么方法可以在没有其他工具的情况下压缩 buildah(或 podman)中的最后 N 个图像?
实际上,问题标题说明了一切。
我找到了两个可能解决问题的工具,但我更愿意使用 podman/buildah 中内置的东西,这些工具已经具备处理图像中层的专业知识: