開発段階で、デプロイする前にコンテナ イメージをローカルで実行し、テストを行うことができます。Cloud Code またはローカルにインストールされた Docker を使用して、ローカルでの実行とテストを行うことができます。Google Cloud サービスにアクセスして、ローカルでテストを行うこともできます。
Knative serving エミュレータで実行する
VS Code と JetBrains IDE 用の Cloud Code プラグインを使用すると、IDE 内の Knative serving エミュレータにより、コンテナ イメージをローカルで実行し、デバッグできるようになります。エミュレータでは、Knative serving 上で実行するサービスを表す環境を構成できます。
CPU やメモリ割り当てなどのプロパティの構成、環境変数の指定、Cloud SQL データベース接続の設定が実行できます。
- VS Code 用または JetBrains IDE 用の Cloud Code をインストールします。
- IDE 内でローカルで開発とデバッグを行う手順を行います。
Docker を使用してローカルで実行する
Docker を使用してコンテナ イメージをローカルでテストするには:
次の Docker コマンドを使用します。
PORT=8080 && docker run -p 9090:${PORT} -e PORT=${PORT} IMAGE_URL
IMAGE_URL は、コンテナ イメージへの参照(
gcr.io/cloudrun/hello
など)に置き換えます。PORT
環境変数には、アプリケーションが HTTP または HTTPS リクエストをリッスンするポートを指定します。これは、コンテナ ランタイムの契約要件です。この例では、ポート 8080 を使用します。ブラウザで http://localhost:9090 を開きます。
コンテナに慣れていない場合は、Docker のスタートガイドをご覧ください。Docker コマンドの詳細については、Docker のドキュメントをご覧ください。
Google Cloud サービスにアクセスしながら Docker を使用してローカルで実行する
Google Cloud クライアント ライブラリを使用してアプリケーションを Google Cloud サービスと統合していて、これらのサービスを外部アクセスから保護していない場合、ローカル コンテナを設定してアプリケーションのデフォルト認証情報を使用し、Google Cloud サービスで認証を行います。
ローカルで実行するには:
サービス アカウントの認証情報を生成、取得、構成する方法については、認証の開始をご覧ください。
以下の Docker 実行フラグを使用して、ローカル システムからローカル コンテナに認証情報と構成を読み込みます。
--volume
(-v
)フラグを使用して、認証情報のファイルをコンテナに挿入します。この操作を行う前に、マシンにGOOGLE_APPLICATION_CREDENTIALS
環境変数が設定されている必要があります。-v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro
--environment
(-e
)フラグを使用して、コンテナ内にGOOGLE_APPLICATION_CREDENTIALS
変数を設定します。-e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json
省略可: この完全構成済みの 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 サービスでは、ローカルのトラブルシューティングが本番環境のパフォーマンスやデータに影響を及ぼさないように、別の構成を使用することをおすすめします。
次のステップ
サービスのデプロイの手順を行い、ビルドしたコンテナをデプロイする。