クイックスタート: ビルド

このページでは、Cloud Build を使用して Docker イメージをビルドし、そのイメージを Artifact Registry に push する方法について説明します。Artifact Registry は、パッケージと Docker コンテナ イメージを 1 か所で管理できる場所として機能します。

まず、Docker 構成ファイルの Dockerfile を使用してイメージをビルドし、次に Cloud Build 構成ファイルを使用して同じイメージをビルドします。

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

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

    [プロジェクトの選択] ページに移動

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

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

    API を有効にする

  5. Cloud SDK をインストールして初期化します。

ソースファイルの準備

コンテナ イメージにパッケージ化するには、サンプルのソースコードが必要です。このセクションでは、簡単なシェル スクリプトと Dockerfile を作成します。Dockerfile は、Docker がイメージを作成するための指示を含むテキスト ドキュメントです。

  1. ターミナル ウィンドウを開きます。

  2. quickstart-docker という名前で新しいディレクトリを作成し、そのディレクトリに移動します。

    mkdir quickstart-docker
    cd quickstart-docker
    
  3. 次の内容のファイルを quickstart.sh という名前で作成します。

    echo "Hello, world! The time is $(date)."
  4. 次の内容のファイルを Dockerfile という名前で作成します。

    FROM alpine
    COPY quickstart.sh /
    CMD ["/quickstart.sh"]
  5. 次のコマンドを実行して、quickstart.sh を実行可能にします。

    chmod +x quickstart.sh
    

Artifact Registry で Docker リポジトリを作成する

  1. 場所 us-central1 に「Docker repository」という説明の付いた quickstart-docker-repo という新しい Docker リポジトリを作成します。

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

    gcloud artifacts repositories list
    

Dockerfile によるビルド

Cloud Build で、Docker イメージを Dockerfile を使用してビルドできます。個別の Cloud Build 構成ファイルは不要です。

Dockerfile を使用してビルドするには:

  1. 次のコマンドを実行して、Cloud プロジェクト ID を取得します。

    gcloud config get-value project
    
  2. quickstart.shDockerfile を含むディレクトリから次のコマンドを実行します。ここで、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 に指示します。

  1. quickstart.shDockerfile があるディレクトリに、cloudbuild.yaml という名前のファイルを作成します。このファイルには以下を含めます。このファイルがビルド構成ファイルです。ビルド時に、Cloud Build が自動的に $PROJECT_ID をプロジェクト ID に置き換えます。

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: [ 'build', '-t', 'us-central1-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1', '.' ]
    images:
    - 'us-central1-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'
  2. 次のコマンドを実行してビルドを開始します。

    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 しました。

ビルドの詳細の表示

  1. Google Cloud Console で Cloud Build ページを開きます。

    Cloud Build ページを開く

  2. プロジェクトを選択し、[開く] をクリックします。

    [ビルド履歴] ページが表示されます。

    ビルド履歴ページのスクリーンショット

  3. 特定のビルドをクリックします。

    [ビルドの詳細] ページが表示されます。

  4. ビルドのアーティファクトを表示するには、[ビルドの概要] で [ビルド アーティファクト] をクリックします。

    出力は次のようになります。

    ビルド アーティファクトのスクリーンショット

    このページから、ビルドログをダウンロードして、Artifact Registry でイメージの詳細を表示できます。

クリーンアップ

このクイックスタートで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

  1. Google Cloud Console で Artifact Registry ページを開きます。

    Artifact Registry ページを開きます。

  2. プロジェクトを選択し、[開く] をクリックします。

  3. [quickstart-docker-repo] を選択します。

  4. [削除] をクリックします。

このクイックスタートで作成したリポジトリの削除は完了です。

これでクイックスタートの演習はすべて終了です。

次のステップ