Knative serving は、コンテナ契約を遵守している限り、コンテナ イメージのビルドに対応しているツールでビルドされたコンテナ イメージを受け入れます。コードは PORT 環境変数で定義されたポートで HTTP リクエストをリッスンする必要があります。この PORT 環境変数は、Knative serving によってコンテナに自動的に挿入されます。
このページでは、コンテナ イメージの作成方法をいくつか説明します。
- Dockerfile を使用する
- Buildpacks を使用する
Dockerfile を使用してビルドする
Dockerfile を使用する場合は、次のいずれかの方法でビルドできます。
- Cloud Build を使用してビルドする
- Docker を使用してローカルでビルドする
Cloud Build でビルドする
Google Cloudでイメージをビルドするには:
- ソースと Dockerfile を含むフォルダに移動します。 
- 次のコマンドを実行します。 - gcloud builds submit --tag IMAGE_URL - IMAGE_URL は、コンテナ イメージへの参照( - gcr.io/cloudrun/helloなど)に置き換えます。
Cloud Build の詳細な手順については、Knative serving へのデプロイをご覧ください。
ビルドのパフォーマンスを向上させるヒントについては、ビルドの高速化をご覧ください。
ローカルにビルドして Docker で push する
Docker をローカルにインストールしている場合は、Cloud Build や Buildpacks の代わりに docker build を使用できます。
Docker を使用してソースからコンテナ イメージをビルド(コンテナ化)する前に、ソースと Dockerfile を用意する必要があります。次の手順では、イメージ レジストリとして Container Registry を使用します。
Docker でコンテナ イメージをビルドするには:
- ソースと - Dockerfileを含むフォルダに移動します。
- 次のコマンドを実行します。 - docker build . --tag IMAGE_URL - IMAGE_URL は、コンテナ イメージへの参照( - gcr.io/cloudrun/helloなど)に置き換えます。
- Google Cloud CLI を使用して Container Registry へのリクエストを認証するように Docker を構成していない場合は、次のコマンドを実行して構成を行います。 - gcloud auth configure-docker - Docker でイメージの pull と push を行う前に、この設定を行う必要があります。この操作は初回のみ必要です。 
- コンテナ イメージを Container Registry に push します。 - docker push IMAGE_URL - IMAGE_URL は、コンテナ イメージへの参照( - gcr.io/cloudrun/helloなど)に置き換えます。
このプロセスからローカル ファイルを除外するには、.dockerignore 構成ファイルの手順に沿って操作します。
Buildpack を使用してビルドする
Buildpacks の詳細については、Buildpacks のウェブサイトをご覧ください。Google では、Knative serving を含む Google Cloud コンテナ プラットフォーム上で実行するように設計されたコンテナ イメージをビルドするための CNCF 互換 Buildpack を提供しています。
現在、次のプラットフォームがサポートされています。
- Go
- Node.js
- Python
- Java
- .NET Core
Cloud Build で Buildpack を使用してビルドする
Buildpack でビルドするには:
- ソースを含むフォルダに移動します。 
- 次のコマンドを実行します。 - gcloud builds submit --pack image=IMAGE_URL - IMAGE_URL をコンテナ イメージ URL(たとえば、 - gcr.io/myproject/myservice)で置き換えます。
- ビルドが完了するまで待ちます。 
pack コマンドラインで Buildpack を使用してビルドする
pack コマンドを使用してビルドするには:
- まだインストールしていない場合は、Docker をインストールします。 
- Google Cloud CLI を使用して Container Registry へのリクエストを認証するように Docker を構成していない場合は、次のコマンドを実行して構成を行います。 - gcloud auth configure-docker - Docker でイメージの pull と push を行う前に、この設定を行う必要があります。この操作は初回のみ必要です。 
- まだインストールしていない場合は、 - packをインストールします。
- ソースを含むフォルダに移動します。 
- 次のコマンドを実行してビルドし、Container Registry に push します。 - pack build --publish IMAGE_URL - IMAGE_URL は、コンテナ イメージへの参照( - gcr.io/cloudrun/helloなど)に置き換えます。
- packが完了するまで待ちます。
詳しくは、アプリケーションのビルドの手順をご覧ください。
次のステップ
- コンテナを Knative serving にデプロイする際に適用される契約の詳細を確認する。コンテナ契約をご覧ください。 
- ビルドしたコンテナを Knative serving にデプロイする。サービスのデプロイをご覧ください。 
- Cloud Build トリガーを使用して Knative serving サービスのビルドとデプロイを自動化する。継続的デプロイを設定するをご覧ください。