次の方法で共有


コンテナー エントリ ポイントを設定する

コンテナー エントリ ポイントは、コンテナーの起動時に実行するように構成されたプロセスです。

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 プロパティ - アプリのスタートアップ プロセスをカスタマイズする」を参照してください。