В нашем проекте у меня есть большое VS-решение с несколькими «основными» проектами (бэкэнд-сервер, API-сервер, микросервисы и т. Д.) И множество других проектов с общей функциональностью, которая используется в «основных» проектах. Прямо сейчас я пытаюсь установить sh процесс развертывания с docker -compose, когда каждый "основной" проект собирается внутри контейнера во время сборки контейнера. Каждый «главный» проект развертывается в своем собственном контейнере, и процесс сборки каждого контейнера можно упростить до следующей процедуры:
- Клонирование исходного кода из github
- Сборка проекта
- Развертывание скомпилированного проекта внутри образа.
Проблема здесь в том, что, поскольку каждый "основной" проект компилируется в своей изолированной среде, многие дополнительные проекты компилируются несколько раз. , Восстановление NuGet также происходит в каждом образе.
Вопросы:
1) Есть ли какое-либо решение для удаленного кэширования MSBuild? Например, если проект A скомпилирован в первом контейнере, он не перекомпилируется во втором и используется кешированная скомпилированная версия?
2) Есть ли общий кеш NuGet? Например, если пакет уже был загружен с серверов nuget в 1 контейнере, кэшированная версия используется в другом контейнере без повторной загрузки?
Спасибо.