このページでは、Cloud Build を使用して Docker イメージをビルドし、そのイメージを Artifact Registry に push する方法について説明します。Artifact Registry は、パッケージと Docker コンテナ イメージを 1 か所で管理できる場所として機能します。
まず、Docker 構成ファイルの Dockerfile
を使用してイメージをビルドし、次に Cloud Build 構成ファイルを使用して同じイメージをビルドします。
始める前に
- Google アカウントにログインします。
Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する。
- Cloud Build, Artifact Registry API を有効にします。
- Cloud SDK をインストールして初期化します。
ソースファイルの準備
コンテナ イメージにパッケージ化するには、サンプルのソースコードが必要です。このセクションでは、簡単なシェル スクリプトと Dockerfile
を作成します。Dockerfile
は、Docker がイメージを作成するための指示を含むテキスト ドキュメントです。
ターミナル ウィンドウを開きます。
quickstart-docker
という名前で新しいディレクトリを作成し、そのディレクトリに移動します。mkdir quickstart-docker cd quickstart-docker
次の内容のファイルを
quickstart.sh
という名前で作成します。次の内容のファイルを
Dockerfile
という名前で作成します。次のコマンドを実行して、
quickstart.sh
を実行可能にします。chmod +x quickstart.sh
Artifact Registry で Docker リポジトリを作成する
場所
us-central1
に「Docker repository」という説明の付いたquickstart-docker-repo
という新しい Docker リポジトリを作成します。gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \ --location=us-central1 --description="Docker repository"
リポジトリが作成されたことを確認します。
gcloud artifacts repositories list
Dockerfile によるビルド
Cloud Build で、Docker イメージを Dockerfile
を使用してビルドできます。個別の Cloud Build 構成ファイルは不要です。
Dockerfile
を使用してビルドするには:
次のコマンドを実行して、Cloud プロジェクト ID を取得します。
gcloud config get-value project
quickstart.sh
とDockerfile
を含むディレクトリから次のコマンドを実行します。ここで、project-id は Cloud プロジェクト ID です。gcloud builds submit --tag us-central1-docker.pkg.dev/project-id/quickstart-docker-repo/quickstart-image:tag1
ビルドが完了すると、次のような出力が表示されます。
DONE
------------------------------------------------------------------------------------------------------------------------------------
ID CREATE_TIME DURATION SOURCE IMAGES STATUS
545cb89c-f7a4-4652-8f63-579ac974be2e 2020-11-05T18:16:04+00:00 16S gs://gcb-docs-project_cloudbuild/source/1604600163.528729-b70741b0f2d0449d8635aa22893258fe.tgz us-central1-docker.pkg.dev/gcb-docs-project/quickstart-docker-repo/quickstart-image:tag1 SUCCESS
Dockerfile
で、quickstart-image
という名前の Docker イメージをビルドしました。このイメージを Artifact Registry に push します。
ビルド構成ファイルによるビルド
このセクションでは、Cloud Build 構成ファイルを使用して、上記と同じ Docker イメージを作成します。ビルド構成ファイルは、指定した内容に基づいてタスクを実行するよう Cloud Build に指示します。
quickstart.sh
とDockerfile
があるディレクトリに、cloudbuild.yaml
という名前のファイルを作成します。このファイルには以下を含めます。このファイルがビルド構成ファイルです。ビルド時に、Cloud Build が自動的に$PROJECT_ID
をプロジェクト ID に置き換えます。次のコマンドを実行してビルドを開始します。
gcloud builds submit --config cloudbuild.yaml
ビルドが完了すると、次のような出力が表示されます。
DONE
------------------------------------------------------------------------------------------------------------------------------------
ID CREATE_TIME DURATION SOURCE IMAGES STATUS
046ddd31-3670-4771-9336-8919e7098b11 2020-11-05T18:24:02+00:00 15S gs://gcb-docs-project_cloudbuild/source/1604600641.576884-8153be22c94d438aa86c78abf11403eb.tgz us-central1-docker.pkg.dev/gcb-docs-project/quickstart-docker-repo/quickstart-image:tag1 SUCCESS
ビルド構成ファイルを使用して quickstart-image
をビルドし、イメージを Artifact Registry に push しました。
ビルドの詳細の表示
Google Cloud Console で Cloud Build ページを開きます。
プロジェクトを選択し、[開く] をクリックします。
[ビルド履歴] ページが表示されます。
特定のビルドをクリックします。
[ビルドの詳細] ページが表示されます。
ビルドのアーティファクトを表示するには、[ビルドの概要] で [ビルド アーティファクト] をクリックします。
出力は次のようになります。
このページから、ビルドログをダウンロードして、Artifact Registry でイメージの詳細を表示できます。
クリーンアップ
このクイックスタートで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。
Google Cloud Console で Artifact Registry ページを開きます。
プロジェクトを選択し、[開く] をクリックします。
[quickstart-docker-repo] を選択します。
[削除] をクリックします。
このクイックスタートで作成したリポジトリの削除は完了です。
これでクイックスタートの演習はすべて終了です。
次のステップ
- 基本的なビルド構成ファイルを作成する方法を学習する。
- Cloud Build を使用してデプロイする方法を学習する。
- コンテナをビルドする方法を学習する。
- Node.js アプリケーションをビルドする方法を学習する。
- Java アプリケーションをビルドする方法を学習する。