次の方法で共有


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

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

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