14.4. 配置容器拉取 secret
要获取容器镜像,您必须配置带有"拉取 secret"的主机系统,其包括主机更新。如需了解更多详细信息,请参阅有关 在 RHEL 的镜像模式下注入 secret 的附录。
您可以将容器拉取 secret 配置到已构建的镜像。如果您使用外部安装程序,如,用于裸机的 Anaconda 或 bootc-image-builder,则您必须使用任何适用的拉取 secret 配置系统。
主机 bootc 更新将配置写入到 /etc/ostree/auth.json 文件中,该文件与 rpm-ostree 共享。
Podman 没有系统范围的凭证。Podman 接受以下目录下的 containers-auth 位置:
-
/run: 这个目录的内容在重启后消失,这不是我们想要的结果。 -
/root: root 主目录部分,默认为本地可变状态。
要统一 bootc 和 Podman 凭据,请为 bootc 和 Podman 使用单个默认全局拉取 secret。以下容器构建是统一 bootc 和 Podman 凭据的一个示例。示例期望一个名为 creds 的 secret ,来包含要构建的注册中心拉取 secret。
流程
-
在
bootc和 Podman 之间创建一个符号链接,来使用单个拉取 secret。通过创建符号链接,您可以确保两个位置都呈现给嵌入在容器镜像中的通用持久文件。 创建
/usr/lib/container-auth.json文件。FROM quay.io/<namespace>/<image>:<tag> COPY containers-auth.conf /usr/lib/tmpfiles.d/link-podman-credentials.conf RUN --mount=type=secret,id=creds,required=true cp /run/secrets/creds /usr/lib/container-auth.json && \ chmod 0600 /usr/lib/container-auth.json && \ ln -sr /usr/lib/container-auth.json /etc/ostree/auth.json运行 containerfile 时,会出现以下操作:
-
Containerfile 使
/run/containers/0/auth.json成为一个临时运行时文件。 -
它创建一个指向
/usr/lib/container-auth.json的符号链接。 -
它还会创建一个持久文件,该文件也从
/etc/ostree/auth.json链接。
-
Containerfile 使