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

このページでは、Cloud Build を使用して Docker イメージをビルドし、そのイメージを Container Registry に push する方法について説明します。Container Registry は、Google Cloud 上に限定公開の安全な Docker イメージ ストレージを提供します。

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

始める前に

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

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

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

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

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

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

    API を有効にする

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

ソースファイルの準備

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

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

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

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

    #!/bin/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
    

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 gcr.io/project-id/quickstart-image
    

ビルドが完了すると、次のような出力が表示されます。

DONE
-------------------------------------------------------------------------------------------------------------------------
ID                                    CREATE_TIME                DURATION SOURCE                                   STATUS
$BUILD_ID                             2016-09-28T13:46:29+00:00  9S    gs://[PROJECT_ID]_cloudbuild/source/1508159187.8-b0d8841d51674a30aebd1e55bb99486f.gz  gcr.io/[PROJECT_ID]/quickstart-image (+1 more)       SUCCESS

Dockerfile で、quickstart-image という名前の Docker イメージをビルドしました。このイメージを Container 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', 'gcr.io/$PROJECT_ID/quickstart-image', '.' ]
    images:
    - 'gcr.io/$PROJECT_ID/quickstart-image'
    
  2. 次のコマンドを実行してビルドを開始します。

    gcloud builds submit --config cloudbuild.yaml
    

ビルドが完了すると、次のような出力が表示されます。

DONE
-------------------------------------------------------------------------------------------------------------------------
ID                                    CREATE_TIME                DURATION SOURCE                                   STATUS
$BUILD_ID                             2016-09-28T13:46:29+00:00  8S    gs://[PROJECT_ID]_cloudbuild/source/1508158566.55-725755714baa4b7e9e99984c422ec4e2.gz  gcr.io/[PROJECT-ID]/quickstart-image (+1 more)       SUCCESS

ビルド構成ファイルを使用して quickstart-image をビルドし、イメージを Container Registry に push しました。

ビルドの詳細の表示

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

    Cloud Build ページを開く

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

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

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

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

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

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

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

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

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

クリーンアップ

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

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

    Container Registry ページを開く

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

  3. [quickstart-image] をクリックします。

  4. すべてのイメージを選択して、[削除] をクリックします。

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

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

次のステップ