16.3. アノテーション解析


一部の OCI メディアタイプではラベルが使用されないために、有効期限のタイムスタンプなどの重要な情報が含まれません。Red Hat Quay は、このようなメタデータ転送用のラベルを含まない OCI メディアタイプに対応するために、アノテーションを介して渡されるメタデータをサポートしています。ORAS (OCI Registry as Storage) などのツールを使用して、アーティファクトタイプに情報を埋め込むことができるようになり、失効などのイメージの適切な動作を確実に実行しやすくなりました。

次の手順では、ORAS を使用して OCI メディアアーティファクトに有効期限を追加します。

重要

podman push でイメージをプッシュしてから、oras でアノテーションを追加すると、MIME タイプが変更されます。これにより、Podman がその MIME タイプを認識しなくなるため、podman pull を使用して同じイメージをプルできなくなります。

前提条件

  • oras CLI をダウンロードした。詳細は、Installation を参照してください。
  • OCI メディアアーティファクトを Red Hat Quay リポジトリーにプッシュした。

手順

  • デフォルトでは、application/vnd.oci.image.manifest.v1+json などの一部の OCI メディアタイプは、有効期限のタイムスタンプなど、特定のラベルを使用しません。ORAS (oras) などの CLI ツールを使用して、OCI メディアタイプにアノテーションを追加できます。以下に例を示します。

    $ oras push --annotation "quay.expires-after=2d" \ 1
    --annotation "expiration = 2d" \ 2
    quay.io/<organization_name>/<repository>/<image_name>:<tag>
    1
    有効期限を 2 日間 (2d) に設定します。
    2
    有効期限ラベルを追加します。

    出力例

    ✓ Exists    application/vnd.oci.empty.v1+json                                                                                   2/2  B 100.00%     0s
      └─ sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
    ✓ Uploaded  application/vnd.oci.image.manifest.v1+json                                                                      561/561  B 100.00%  511ms
      └─ sha256:9b4f2d43b62534423894d077f0ff0e9e496540ec8b52b568ea8b757fc9e7996b
    Pushed [registry] quay.io/stevsmit/testorg3/oci-image:v1
    ArtifactType: application/vnd.unknown.artifact.v1
    Digest: sha256:9b4f2d43b62534423894d077f0ff0e9e496540ec8b52b568ea8b757fc9e7996b

検証

  1. oras でイメージをプルします。以下に例を示します。

    $ oras pull quay.io/<organization_name>/<repository>/<image_name>:<tag>
  2. oras を使用して変更を検査します。以下に例を示します。

    $ oras manifest fetch quay.io/<organization_name>/<repository>/<image_name>:<tag>

    出力例

    {"schemaVersion":2,"mediaType":"application/vnd.oci.image.manifest.v1+json","artifactType":"application/vnd.unknown.artifact.v1","config":{"mediaType":"application/vnd.oci.empty.v1+json","digest":"sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a","size":2,"data":"e30="},"layers":[{"mediaType":"application/vnd.oci.empty.v1+json","digest":"sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a","size":2,"data":"e30="}],"annotations":{"org.opencontainers.image.created":"2024-07-11T15:22:42Z","version ":" 8.11"}}

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.