特定のビルダーを使用する

ビルダーとは、バージョニングされたイメージで、実行可能なコンテナの作成に必要なすべてのコンポーネントを含みます。各ビルダーでは、Ubuntu 22 などの特定の OS ディストリビューションがベースイメージとして使用され、複数のプログラミング言語のバージョンがサポートされています。

次が必要である場合は、ビルダー バージョンをカスタマイズする必要があります。

  • 特定のビルダー バージョンでのみ使用できる OS 固有の依存関係。
  • 特定のビルダー バージョンでのみ使用できるプログラミング言語の特定のバージョン。

ローカルビルド

ローカルビルドの場合、Pack CLI と Docker がインストールされている必要があります。

始める前に

  1. Docker Community Edition(CE)をワークステーションにインストールします。pack は Docker を OCI イメージ ビルダーとして使用します。
  2. Pack CLI をインストールします。
  3. GitHub からサンプル アプリケーションを取得するために Git ソース管理ツールをインストールします。

pack でビルダー バージョンを指定する

pack コマンドに --builder フラグを追加すると、使用するビルダーのバージョンを指定できます。

pack build SERVICE_IMAGE_NAME --builder=BUILDER_IMAGE_URL

次のように置き換えます。

  • BUILDER_IMAGE_URL は、ビルダーの URL に置き換えます。例: gcr.io/buildpacks/builder:google-22
  • SERVICE_IMAGE_NAME は、アプリケーション イメージに選択した名前に置き換えます。

pack コマンドについて詳しくは、CLI のドキュメントをご覧ください。

project.toml でビルダー バージョンを指定する

Buildpacks のプロジェクト記述子project.toml)を使用して、pack でビルドするときのビルダーを設定できます。

  1. アプリケーションのルート ディレクトリに project.toml というファイルを作成し、次の構成を記述します。
    [build]
    builder = "BUILDER_IMAGE_URL"
  2. 「pack」コマンドを実行して、アプリケーションをビルドします。
    pack build SERVICE_IMAGE_NAME

次のように置き換えます。

  • BUILDER_IMAGE_URL は、ビルダーの URLに置き換えます。例: gcr.io/buildpacks/builder:google-22
  • SERVICE_IMAGE_NAME は、アプリケーション イメージに選択した名前に置き換えます。

リモートビルド

プロジェクトを送信するときに --pack フラグを追加すると、Cloud Build で特定のビルダーを使用できます。

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Cloud Build and Artifact Registry API を有効にします。

    API を有効にする

  5. Google Cloud CLI をインストールします。
  6. gcloud CLI を初期化するには:

    gcloud init
  7. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  8. Google Cloud プロジェクトで課金が有効になっていることを確認します

  9. Cloud Build and Artifact Registry API を有効にします。

    API を有効にする

  10. Google Cloud CLI をインストールします。
  11. gcloud CLI を初期化するには:

    gcloud init
  12. Google Cloud プロジェクトがコンテナ イメージ リポジトリにアクセスできることを確認します。

    Artifact Registry の Docker リポジトリへのアクセスを構成するには:

    1. Google Cloud プロジェクトの同じロケーションに Docker リポジトリを新規作成します。
      gcloud artifacts repositories create REPO_NAME \
      --repository-format=docker \
      --location=REGION --description="DESCRIPTION"
      
      次のように置き換えます。
      • REPO_NAME は、Docker リポジトリに選択した名前に置き換えます。
      • REGION は、Google Cloud プロジェクトのロケーションに、またはそれに最も近いロケーションに置き換えます。
      • DESCRIPTION は選択した説明に置き換えます。

      たとえば、「Docker repository」という説明を使用して us-west2docker リポジトリを作成するには、次のコマンドを実行します。

      gcloud artifacts repositories create buildpacks-docker-repo --repository-format=docker \
      --location=us-west2 --description="Docker repository"
      
    2. リポジトリが作成されたことを確認します。
      gcloud artifacts repositories list
      

      Docker リポジトリに選択した名前がリストに表示されます。

特定のビルダーを使用してアプリケーションをビルドする

  1. gcloud を使用して、アプリケーションのソースコードを Cloud Build に送信します。
    gcloud builds submit --pack builder=BUILDER_IMAGE_URL,image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/SERVICE_IMAGE_NAME

    次のように置き換えます。

    • BUILDER_IMAGE_URL は、ビルダーの URL に置き換えます。 例: gcr.io/buildpacks/builder:google-22
    • LOCATION は、コンテナ リポジトリのリージョン名に置き換えます。例: us-west2-docker.pkg.dev
    • PROJECT_ID は、Google Cloud プロジェクトの ID に置き換えます。
    • REPO_NAME は Docker リポジトリの名前に置き換えます。
    • SERVICE_IMAGE_NAME は、作成したコンテナ イメージの名前に置き換えます。

    submit コマンドについて詳しくは、Cloud Build のドキュメントをご覧ください。

  2. サンプル アプリケーションが REPO_NAME に正常に公開されたことを確認します。
    gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME

    次のように置き換えます。

    • LOCATION は、コンテナ リポジトリのリージョン名に置き換えます。例: us-west2-docker.pkg.dev
    • PROJECT_ID は、Google Cloud プロジェクトの ID に置き換えます。
    • REPO_NAME は Docker リポジトリの名前に置き換えます。

Cloud Run を使用してソースからデプロイする

Buildpacks のプロジェクト記述子ファイル(project.toml など)を使用して、Cloud Run でソースからデプロイするときのビルダーを設定できます。

  1. アプリケーション ディレクトリのルートで project.toml ファイルを初期化し、次の構成を貼り付けます。
    [build]
    builder = "BUILDER_IMAGE_URL"
  2. ソースからアプリケーションをデプロイします。
    gcloud run deploy --source . SERVICE_IMAGE_NAME

次のように置き換えます。

  • BUILDER_IMAGE_URL は、ビルダーの URL に置き換えます。例: gcr.io/buildpacks/builder:google-22
  • SERVICE_IMAGE_NAME は、作成したコンテナ イメージの名前に置き換えます。