Чтобы разработать шаблонный код для докер-решения, я хочу, чтобы несколько проектов docker-compose .dcproj были в одном решении.
Скажем:
- shared-docker-compose .dcproj - Общие службы для взаимодействия, например MQ
- example-docker-compose .dcproj - Пример сервисов для тестирования / игровая площадка для шаблона.
- app1-docker-compose .dcproj - фактические службы для сценария 1
- приложение # ...
Это должно поддерживать высокую скорость разработки, если часть решения нуждается в обновлении. И разработчик может решить, на какую часть всего решения он хочет взглянуть.
Хорошо - не проблема для создания этого проекта / создания файлов. Нет проблем с docker, docker-compose или любой другой частью решения. За исключением IDE.
Visual Studio 2017 действительно борется с несколькими dcproj-файлами.
- Поведение отличается в зависимости от порядка dcproj в .sln-файле.
- Требуется первый найденный dcproj.
- Разгрузка всех других dcproj помогает. Но я не уверен, что это стабильно.
- Даже если он запустится, нет гарантии, что отладчик отслеживает запрошенную композицию. Например. При запуске dcproj # 3 отладчик прослушивает dcproj # 2.
- Если первый найденный dcproj является просто распространителем изображений (как и start MQ, без кода, то есть без build:), тогда compose встает, но dev сбрасывается в тишине.
- Странно, когда в решении несколько dcproj-файлов и вы Добавить -> Поддержка Docker вы можете выбрать, какой из них.
Или вкратце: невозможно использовать без веских объяснений для всех разработчиков. Потребовалось много времени, чтобы собрать все эти фрагменты ответственности.
Итак, вот мой вопрос:
Есть ли способ для такой композиции, которая работает также с Visual Studios .dcproj?
Есть ли рекомендации для такого распространенного сценария?
На данный момент единственный способ, который я нашел, - это разделить решения, где единственное отличие состоит в том, какой docker-compose включен. Спасибо за любые идеи и за то, что поделились своими практиками.
Кстати, я бы хотел добавить тег dcproj-file. :)