Извлеките команду Docker из интеграции VisualStudio Docker - PullRequest
0 голосов
/ 16 июня 2020

Я создал работающий docker образ моего . Net Core API с интеграцией Visual Studio Docker. Но когда я запускаю свой Dockerfile из терминала без каких-либо аргументов c, изображение не работает. Есть ли способ извлечь команды docker, которые Visual Studio выполняет внутри? Файл launchSettings. json имеет профиль для docker, но не включает команду docker. Также команды docker

docker inspect <image>
docker history <image>

не помогли мне решить эту проблему.

В конце концов я хочу запустить изображение docker без VisualStudio.

Ответы [ 2 ]

0 голосов
/ 16 июня 2020

Пока ваши отдельные изображения docker не зависят от других изображений docker, вы должны иметь возможность запускать каждое изображение docker с использованием отдельного Dockerfile.

Visual Studio имеет два параметры для создания docker изображений.

  1. Щелкните правой кнопкой мыши> Проект> Добавить> Docker Поддержка
  2. Щелкните правой кнопкой мыши> Проект> Добавить> Поддержка оркестратора контейнеров

Вариант №2 добавит docker -compose. На уровне решения. Вы должны иметь возможность использовать docker-compose cli и работать без поддержки Visual Studio.

Обновление Visual Studio 16.5.4 только добавляет возможности для улучшенной отладки. Но это не означает, что вам нужны специальные команды для работы с Dockerfile или Docker-compose.

Другой причиной этого утверждения является. NET Core кроссплатформенный. . NET Основные решения могут быть созданы на компьютере windows, зарегистрированном в системе управления версиями. Проверено на машине Linux / Ma c и разработано на машине Linux / Ma c. Специальные команды VS будут мешать кроссплатформенному опыту разработчиков.

Пожалуйста, проверьте ваше сообщение об ошибке. Должно работать.

0 голосов
/ 16 июня 2020

Вы можете увидеть команды, выполняемые VS, на панели окна вывода (Ctrl + Alt + O) и переключив раскрывающееся меню «Показать вывод из» на «Инструменты контейнера». Но вряд ли эти команды будут теми же командами, которые вы запускали бы вне контекста VS, потому что эти команды хорошо настроены для управления отладкой вашего приложения. Таким образом, команды выполняют такие действия, как монтирование тома для настройки удаленной отладки и предоставляют доступ к локальному кешу пакетов NuGet для повышения производительности.

Вы можете найти документацию по созданию и запуску образца. NET Основные проекты для официальный. NET Core Docker изображения по адресу https://github.com/dotnet/dotnet-docker/tree/master/samples.

Также не забудьте прочитать контекст сборки Docker, если вы не знакомы с ним: https://docs.docker.com/engine/reference/commandline/build/. Это важная концепция, которую нужно понять, потому что расположение вашего Dockerfile относительно вашего проекта (ов) имеет значение. Это также обсуждается на странице. NET GitHub: https://github.com/dotnet/dotnet-docker/tree/master/samples/complexapp#building -an-image-including-multiple-projects .

...