17.4. コンテナープルシークレットの設定
コンテナーイメージを取得するには、ホストの更新を含むプルシークレットを使用してホストシステムを設定する必要があります。コンテナープルシークレットは、すでにビルドされたイメージに設定できます。ベアメタル用の Anaconda などの外部インストーラーや bootc-image-builder を使用する場合は、適切なプルシークレットを使用してシステムを設定する必要があります。ホストの bootc 更新では、rpm-ostree と共有される /etc/ostree/auth.json ファイルに設定が書き込まれます。
手順
単一のプルシークレットを使用するために、
bootcと Podman の間にシンボリックリンクを作成します。シンボリックリンクを作成することにより、コンテナーイメージに埋め込まれる共通の永続ファイルに対する両方の場所を確保できます。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.jsoncontainers-auth.confファイルを作成します。# Make /run/containers/0/auth.json (a transient runtime file) # a symlink to our /usr/lib/container-auth.json (a persistent file) # which is also symlinked from /etc/ostree/auth.json. d /run/containers/0 0755 root root - L /run/user/0/containers/auth.json - - - - ../../../../usr/lib/container-auth.jsonpodman buildコマンドを使用してイメージをビルドします。$ podman build --secret id=creds,src=$HOME/.docker/config.jsonContainerfile を実行すると、次の操作が実行されます。
-
この Containerfile は、
containers-auth.confを一時的なランタイムファイルとします。 -
containers-auth.confへのシンボリックリンクを作成します。 また、永続ファイルも作成されます。このファイルにも、
/etc/ostree/auth.jsonからのシンボリックリンクが設定されます。Podman にはシステム全体の認証情報がありません。Podman は、次のディレクトリー配下にある
containers-authの場所を受け付けます。-
/run: このディレクトリーの内容は再起動時に消去されますが、不要なため消去されても問題ありません。 /root: root のホームディレクトリーの一部。デフォルトではローカルで変更可能な状態です。bootcと Podman の認証情報を統合するには、bootcと Podman の両方に単一のデフォルトのグローバルプルシークレットを使用します。次のコンテナービルドは、bootcと Podman の認証情報を統合する例です。この例では、credsという名前のシークレットに、ビルドするレジストリープルシークレットが含まれていることを想定しています。
-
この Containerfile は、