コンテナイメージをビルドしましたが、gcloud
コマンドラインまたはCloud Consoleからデプロイしようとすると、「コンテナの起動に失敗しました。起動に失敗し、定義されたポートでリッスンできませんでしたPORT環境変数によって。」
他の理由の1つは、私が観察したものかもしれません。 Dockerイメージには、アプリケーションを実行するために必要なコードがない場合があります。
TypeScriptでNodeアプリケーションを記述しました。アプリケーションをドッキングするには、コードtsc
をコンパイルしてdocker build
を実行するだけですが、 gcloud builds submitがそれを処理し、.dockerignoreに関連して提案されたDockerfileとしてコンパイルされたコードを選択し、ソースコードをビルドしてリポジトリに送信します。
しかし、ソースコードをコピーしてCloud Buildに送信するだけで、Dockerfileのように、コンパイルされたコードをドッキングするのではなく、ソースコードをドッキングしました。
したがって、コンパイルが必要な言語でソースコードを実行している場合は、Dockerfileにビルドステップを含めることを忘れないでください。
もう1つの可能性は、Dockerイメージが完了するまでに時間がかかるコマンドで終了することです。デプロイの開始時にはサーバーはまだ実行されておらず、ヘルスチェックは空白になります。
それはどのようなコマンドですか?通常、サーバーを開発モードで実行するコマンド。 Scala/SBTの場合はsbt run
またはNode in npm run dev
。つまり、パッケージ化されたビルドでのみ実行するようにしてください。