コンテナー エントリ ポイントを設定する
コンテナー エントリ ポイントは、コンテナーの起動時に実行するように構成されたプロセスです。
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 のプロパティ - アプリのスタートアップ プロセスをカスタマイズする」を参照してください。
関連コンテンツ
- コンテナー プロジェクト の MSBuild プロパティについて。
- MSBuild
- Windows 上の Dockerfile
- Windows における Linux コンテナー