Общий кэш msbuild и nuget для нескольких машин - PullRequest
0 голосов
/ 03 апреля 2020

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

  1. Клонирование исходного кода из github
  2. Сборка проекта
  3. Развертывание скомпилированного проекта внутри образа.

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

Вопросы:

1) Есть ли какое-либо решение для удаленного кэширования MSBuild? Например, если проект A скомпилирован в первом контейнере, он не перекомпилируется во втором и используется кешированная скомпилированная версия?

2) Есть ли общий кеш NuGet? Например, если пакет уже был загружен с серверов nuget в 1 контейнере, кэшированная версия используется в другом контейнере без повторной загрузки?

Спасибо.

...