Поделиться через


Установка точки входа контейнера

Точка входа контейнера — это процесс, настроенный для запуска контейнера.

Предпосылки

  • Docker Desktop или Podman Desktop.
  • Visual Studio или для поддержки Podman Visual Studio 2026 с установленной рабочей нагрузкой разработки ASP.NET и веб-разработки, рабочей нагрузкой разработки Azure и (или) рабочей нагрузкой разработки классических приложений .NET .

Предпосылки

  • Docker Desktop.
  • Visual Studio с установленными рабочими нагрузками для разработки на ASP.NET и веб, разработки на Azure и/или разработки настольных приложений .NET.

Точка входа по типу проекта

Visual Studio использует настраиваемую точку входа контейнера в зависимости от типа проекта и операционной системы контейнера, ниже приведены различные сочетания.

Тип контейнера Точка входа
контейнеры 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 точка входа немного отличается, поскольку к команде добавляется ServiceMonitor.
Тип контейнера Точка входа
контейнеры Linux Для .NET 6 и более поздних версий точка входа dotnet --roll-forward Major /VSTools/DistrolessHelper/DistrolessHelper.dll --wait. Для .NET 5 и более ранних версий точка входа tail -f /dev/null. Эти процессы используют бесконечное ожидание, чтобы сохранить контейнер запущенным, когда приложение не запущено. Когда приложение запускается с отладчиком или без него, отладчик отвечает за запуск приложения (т. е. dotnet webapp.dll). DistrolessHelper отслеживает процесс приложения и завершает работу с кодом выхода приложения при завершении процесса приложения.
Windows-контейнеры Точка входа это нечто вроде C:\remote_debugger\x64\msvsmon.exe /noauth /anyuser /silent /nostatus, которое запускает отладчик, поэтому оно прослушивает подключения.

Точка входа контейнера может быть изменена только в проектах Docker Compose, а не в проектах с одним контейнером. См. свойства Docker Compose — настройка процесса запуска приложения.