🏃

Cloud Run + Artifact Registry + Kaniko キャッシュのcloudbuild.yaml

2024/03/07に公開

デプロイ先がCloud Run、コンテナイメージのレジストリがArtifact RegistryKaniko キャッシュを使用したcloudbuild.yamlの作成例です。

cloudbuild.yaml
steps:
  # Dockerイメージのビルド(本番用)
  - name: "gcr.io/kaniko-project/executor:latest"
    args:
      - --destination=${_LOCATION}-docker.pkg.dev/$PROJECT_ID/${_REPOSITORY}/${_SERVICE_NAME}:$SHORT_SHA
      # - --target=${_TARGET} マルチステージビルドの場合
      - --cache=true
      - --cache-ttl=6h

  # Cloud Runへのデプロイ
  - name: "gcr.io/google.com/cloudsdktool/cloud-sdk"
    entrypoint: gcloud
    args: [
        "run",
        "deploy",
        "${_SERVICE_NAME}",
        "--image",
        "${_LOCATION}-docker.pkg.dev/$PROJECT_ID/${_REPOSITORY}/${_SERVICE_NAME}:$SHORT_SHA",
        # "--service-account", サービスアカウントを設定する場合
        # "${_SERVICE_ACCOUNT}",
        "--max-instances",
        "1",
        "--platform",
        "managed",
        "--region",
        "${_LOCATION}",
        "--port",
        "8080",
        "--allow-unauthenticated",
        "--cpu-boost",
      ]

参考
https://cloud.google.com/build/docs/build-config-file-schema?hl=ja

https://cloud.google.com/build/docs/deploying-builds/deploy-cloud-run?hl=ja

Cloud Runのデプロイの引数一覧
https://cloud.google.com/sdk/gcloud/reference/run/deploy

kanikoで設定できる引数の一覧が載っている
https://github.com/GoogleContainerTools/kaniko?tab=readme-ov-file

Discussion