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

ビルダーとは、バージョニングされたイメージで、実行可能なコンテナの作成に必要なすべてのコンポーネントを含みます。各ビルダーでは、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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build and Artifact Registry APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Cloud Build and Artifact Registry APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    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 は、作成したコンテナ イメージの名前に置き換えます。