コンテナ イメージをローカルでテストする

開発段階で、デプロイする前にコンテナ イメージをローカルで実行し、テストを行うことができます。Cloud Code またはローカルにインストールされた Docker を使用して、ローカルでの実行とテストを行うことができます。Google Cloud サービスにアクセスして、ローカルでテストを行うこともできます。

Cloud Run for Anthos on Google Cloud エミュレータで実行する

VS CodeJetBrains IDE 用の Cloud Code プラグインを使用すると、IDE 内の Cloud Run for Anthos on Google Cloud エミュレータでコンテナ イメージをローカルで実行、デバッグできるようになります。エミュレータでは、Cloud Run for Anthos on Google Cloud で実行されるサービスを表す環境を構成できます。

CPU やメモリ割り当てなどのプロパティの構成、環境変数の指定、Cloud SQL データベース接続の設定が実行できます。

  1. VS Code 用または JetBrains IDE 用の Cloud Code をインストールします。
  2. IDE 内でローカルで開発とデバッグを行う手順を行います。

Docker を使用してローカルで実行する

Docker を使用してコンテナ イメージをローカルでテストするには:

  1. 次の Docker コマンドを使用します。

    PORT=8080 && docker run -p 9090:${PORT} -e PORT=${PORT} IMAGE_URL

    IMAGE_URL は、コンテナ イメージへの参照(gcr.io/myproject/my-image:latest など)に置き換えます。

    PORT 環境変数には、アプリケーションが HTTP または HTTPS リクエストをリッスンするポートを指定します。これは、コンテナ ランタイムの契約要件です。この例では、ポート 8080 を使用します。

  2. ブラウザで http://localhost:9090 を開きます。

コンテナに慣れていない場合は、Docker のスタートガイドをご覧ください。Docker コマンドの詳細については、Docker のドキュメントをご覧ください。

Google Cloud サービスにアクセスしながら Docker を使用してローカルで実行する

Google Cloud クライアント ライブラリを使用してアプリケーションを GCP サービスと統合しているときに、これらのサービスを外部アクセスから保護していない場合は、アプリケーションのデフォルト認証情報で Google Cloud サービスの認証を行うように、ローカル コンテナを設定します。

ローカルで実行するには:

  1. サービス アカウントの認証情報を生成、取得、構成する方法については、認証の開始をご覧ください。

  2. 以下の Docker 実行フラグを使用して、ローカル システムからローカル コンテナに認証情報と構成を読み込みます。

    1. --volume-v)フラグを使用して、認証情報のファイルをコンテナに挿入します。この操作を行う前に、マシンに GOOGLE_APPLICATION_CREDENTIALS 環境変数が設定されている必要があります。
      -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro
    2. --environment-e)フラグを使用して、コンテナ内に GOOGLE_APPLICATION_CREDENTIALS 変数を設定します。
      -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json
  3. (省略可能)この完全構成済みの Docker run コマンドを使用します。

    PORT=8080 && docker run \
    -p 9090:${PORT} \
    -e PORT=${PORT} \
    -e K_SERVICE=dev \
    -e K_CONFIGURATION=dev \
    -e K_REVISION=dev-00001 \
    -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json \
    -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro \
    IMAGE_URL

    上記の例のパスは、

    /tmp/keys/FILE_NAME.json
    認証情報を配置するコンテナ内の場所です。

    他のディレクトリも使用できますが、GOOGLE_APPLICATION_CREDENTIALS 環境変数の値がコンテナ内のバインド マウントの場所と一致している必要があります。

    一部の Google Cloud サービスでは、ローカルのトラブルシューティングが本番環境のパフォーマンスやデータに影響を及ぼさないように、別の構成を使用することをおすすめします。

次のステップ

サービスのデプロイの手順を行い、ビルドしたコンテナをデプロイする。