Что такое хвостовая команда с точкой входа docker run в visual studio 2019? - PullRequest
0 голосов
/ 29 марта 2020

У меня работает Windows 10 pro, docker установлены и linux контейнеры.

В Visual Studio 2019 я создал базовое приложение c. net core web api и включена поддержка docker (linux).

Я построил решение, и в окне вывода (View -> Output или Ctrl + Alt + O) я выбрал «Инструменты контейнера» в Show Output From падать. Прокрутите до конца (см. Полосу прокрутки на рисунке ниже), и вы увидите опцию точки входа для команды запуска docker следующим образом.

--entrypoint tail webapp:dev -f /dev/null

Вся команда запуска docker для вашего ref выглядит следующим образом.

docker run -dt -v "C:\Users\MyUserName\vsdbg\vs2017u5:/remote_debugger:rw" -v "D:\Trials\Docker\VsDocker\src\WebApp:/app" -v "D:\Trials\Docker\VsDocker\src:/src" -v "C:\Users\UserName\.nuget\packages\:/root/.nuget/fallbackpackages" -e "DOTNET_USE_POLLING_FILE_WATCHER=1" -e "ASPNETCORE_ENVIRONMENT=Development" -e "NUGET_PACKAGES=/root/.nuget/fallbackpackages" -e "NUGET_FALLBACK_PACKAGES=/root/.nuget/fallbackpackages" -P --name WebApp --entrypoint tail webapp:dev -f /dev/null 

Так что мой вопрос, что это за "хвост". Я видел два таких вопроса ( это и это ), но не смог получить много. Также из здесь tail, похоже, является командой linux (и я запускаю контейнер linux), но что он здесь делает?

Пожалуйста, просветите меня.

enter image description here

1 Ответ

1 голос
/ 29 марта 2020

Точка входа - исполняемый двоичный файл.
Пример: --entrypoint=bash --entrypoint=helm вот так.
Утилита tail linux отображает содержимое файла или, по умолчанию, его стандартный ввод на стандартный вывод /dev/null.
/dev/null перенаправляет стандартный вывод команды на нулевое устройство, которое является специальным устройством, которое отбрасывает записанную в него информацию. Поэтому, когда вы запускаете tail -f /dev/null в терминале, он ничего не печатает.

Если вы хотите, чтобы ваш контейнер работал в автономном режиме, вам нужно запустить что-то на переднем плане. Самый простой способ сделать это - tail устройство /dev/null в качестве команды CMD или ENTRYPOINT вашего Docker образа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...