使用 GitHub Actions 新增映像檔註釋

註釋允許您為 OCI 映像檔組件(例如 manifests、indexes 和 descriptors)指定任意中繼資料。

要在使用 GitHub Actions 建置映像檔時新增註釋,請使用 metadata-actionbuild-push-actionbake-action



設定註釋層級

預設情況下,註釋會放在映像檔 manifests 上。要設定 註釋層級,請將 metadata-action步驟中的 DOCKER_METADATA_ANNOTATIONS_LEVELS 環境變數設定為以逗號分隔的所有要註釋的層級清單。例如,將 DOCKER_METADATA_ANNOTATIONS_LEVELS 設定為 index 會導致註釋位於映像檔 index 上,而不是 manifests 上。

以下範例會在映像檔 index 和 manifests 上建立註釋。

name: ci

on:
  push:

env:
  IMAGE_NAME: user/app

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - name: Login to Docker Hub
        uses: docker/login-action@v3
        with:
          username: ${{ vars.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Extract metadata
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: ${{ env.IMAGE_NAME }}
        env:
          DOCKER_METADATA_ANNOTATIONS_LEVELS: manifest,index

      - name: Build and push
        uses: docker/build-push-action@v6
        with:
          tags: ${{ steps.meta.outputs.tags }}
          annotations: ${{ steps.meta.outputs.annotations }}
          push: true

注意事項

建置必須產生您要註釋的組件。例如,要註釋映像檔 index,建置必須產生一個 index。如果建置僅產生一個 manifest,並且您指定 indexindex-descriptor,則建置將會失敗。