Зачем докеризация asp.net core создаёт лишнюю директорию?

211
01 июля 2021, 00:30

Пробую упаковать приложение asp.net core в контейнер докер по статье, всё получается, но есть непонятный момент.

Начальная конфигурация для .NET Core 2.0 не позволит вам сразу построить образ с помощью команды docker build. Она настроена на то, что будет запущен файл docker-compose из директории уровнем выше. Для того чтобы построение происходило успешно Dockerfile можно привести к подобному виду:

Все что я сделал, это убрал лишнюю директорию DockerServiceDemo.

Я контейнеризировал проект 2.2, у меня была другая структура каталогов -- но тем не менее, генератор студии мне тоже создал Dockerfile с такой же лишней структурой и мне тоже пришлось убирать из кода эту лишнюю директорию.

Не ахти какие действия, но ведь какая-то в этом логика закладывывалась разработчиками майкрософт?

Зачем же это было нужно вообще? Зачем запускать docker-compose из директории уровнем выше?

Answer 1

docker-compose - оркестратор, и рассчитан на поддержку нескольких сервисов. Соответственно, он может ссылаться на несколько проектов, и на несколько docker-файлов.

Попробуйте создать два проекта в одном решении и вызвать Add Container Orchestrator Support / Docker Compose для обоих. Получите следующую раскладку:

При этом в качестве контекста у обоих проектов будет использоваться папка решения:

services:
  app1:
    image: ${DOCKER_REGISTRY-}app1
    build:
      context: .
      dockerfile: App1/Dockerfile
  app2:
    image: ${DOCKER_REGISTRY-}app2
    build:
      context: .
      dockerfile: App2/Dockerfile

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

READ ALSO
Бесконечный цикл и выполнить запуск метода один раз при обнаружение

Бесконечный цикл и выполнить запуск метода один раз при обнаружение

Пытаюсь сделать программу которая будет отслеживать запуск определённых процессов, если какой-то процесс запустился отследить его и запустить...

79
Как сделать полу рандомную анимацию?

Как сделать полу рандомную анимацию?

Как сделать так, чтоб сначала проигрывалась анимация по одному, а иногда немного по другому

114
Смещение элемента массива плавно вниз Консоль [дубликат]

Смещение элемента массива плавно вниз Консоль [дубликат]

Подскажите как сделать, что бы масив начиная с последнего элемента, плавно опускался вниз и исчезал? Принцип тетриса, но реализовать не получаеться

70
Получение каждой цифры отдельно из строки

Получение каждой цифры отдельно из строки

как можно брать цифры в строке полученную из базы "1,5,7" засунуть их в переменные или как то еще лучше чтоб типа в цикле поставить на каждую...

94