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


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

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

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 точка входа немного отличается, поскольку к команде добавляется 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 точка входа немного отличается: в команду добавляется элемент ServiceMonitor.

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