Docker 构建文件图像问题

Docker build file image issue

我正在尝试使用 ubi8/s2i-base:rhel8.5

构建一个 docker 文件

我的 docker 文件的开头看起来像

FROM ubi8/s2i-base:rhel8.5 as Builder

RUN apk add --update --no-cache \
    build-base \
    postgresql-dev \
    git \
    imagemagick \
    nodejs-current \
    yarn \
    tzdata

我收到前端无法解决的错误 dockerfile.v0:无法创建 LLB 定义:拉取访问被拒绝

我正在尝试使用这张图片 https://catalog.redhat.com/software/containers/ubi8/s2i-base/5c83976a5a13464733ec6790?container-tabs=technical-information&gti-tabs=registry-tokens。构建我的 python 图像。

谁能告诉我如何在 docker 文件中使用 redhat 基础映像。

错误就在消息中 - pull access denied。您的 FROM 语句中还有第二个问题,即您没有指定链接图像的完整路径。

所以你有两件事要解决:

  1. 当您从 redhat 的注册表中提取时,您需要提供完整的 URL 而不仅仅是图像名称。对于您链接的图像,这意味着您需要“FROM registry.redhat.io/ubi8/s2i-base:rhel18.5 as Builder`.
  2. 当你使用 Redhat 的注册表时,他们希望你创建一个服务帐户并使用它登录。他们在“获取此图像”标签下提供了有关如何执行此操作的说明,但简而言之,您需要先使用 docker login 登录 registry.redhat.io,然后再 运行 您的 docker build命令。

解决这些问题后,您的 Dockerfile 中还有第三个问题需要解决:

  1. 您正在使用 apk 包管理器尝试安装包,这是 Alpine linux 的包管理器。您尝试扩展的图像使用 yum 包管理器(您可以在提供的 Dockerfile 中看到它),因此需要使用该包管理器来安装您的依赖项。

在这些事情之间,您的拉取访问应该得到正确授权,并且您的构建问题已解决。