コンテナー エントリ ポイントを設定する
コンテナー エントリ ポイントは、コンテナーの起動時に実行するように構成されたプロセスです。
Visual Studio では、プロジェクトの種類とコンテナーのオペレーティング システムに応じて、カスタム コンテナーのエントリ ポイントを使用します。さまざまな組み合わせを次に示します。
コンテナーの種類 | エントリ ポイント |
---|---|
Linux コンテナー | エントリ ポイントは tail -f /dev/null です。コンテナーの実行を維持するために、無期限に待機します。 デバッガーを介してアプリを起動すると、アプリの実行を担当するのはデバッガー (つまり、dotnet webapp.dll ) です。 デバッグなしで起動すると、ツールでは、アプリを実行するために docker exec -i {containerId} dotnet webapp.dll が実行されます。 |
Windows コンテナー | エントリ ポイントは、デバッガーを実行する C:\remote_debugger\x64\msvsmon.exe /noauth /anyuser /silent /nostatus のようなものであるため、接続をリッスンしています。 このメソッドは、デバッガーがアプリを実行するときに適用されます。 デバッグなしで起動されると、docker exec コマンドが使用されます。 .NET Framework Web アプリの場合、エントリ ポイントはわずかに異なり、ServiceMonitor がコマンドに追加されます。 |
コンテナーの種類 | エントリ ポイント |
---|---|
Linux コンテナー | .NET 6 以降の場合、エントリ ポイントは dotnet --roll-forward Major /VSTools/DistrolessHelper/DistrolessHelper.dll --wait になります。 .NET 5 以前の場合、エントリ ポイントは tail -f /dev/null になります。 これらのプロセスでは、アプリが実行されていないときにコンテナーを実行し続けるために無限待機が使用されます。 アプリが起動されると、デバッグの有無にかかわらず、アプリ (dotnet webapp.dll ) を実行し、コンテナーの実行を継続するのはデバッガーの役割です。 |
Windows コンテナー | エントリ ポイントは、デバッガーを実行する C:\remote_debugger\x64\msvsmon.exe /noauth /anyuser /silent /nostatus のようなものであるため、接続をリッスンしています。 .NET Framework Web アプリの場合、エントリ ポイントはわずかに異なり、ServiceMonitor がコマンドに追加されます。 |
コンテナー エントリ ポイントは、単一コンテナー プロジェクトではなく、Docker Compose プロジェクトでのみ変更できます。 「Docker Compose プロパティ - アプリのスタートアップ プロセスをカスタマイズする」を参照してください。