В настоящее время мы изучаем CI / CD с нашей командой для нашего веб-сайта. Недавно мы также адаптировались к структуре монорепозитория, так как это значительно упрощает наши зависимости и обзор. В настоящее время тестирование и т. Д. Готово для CI, но сейчас я приступаю к развертыванию. Я хотел бы создать docker-образы необходимых пакетов.
Я подумал:
1) Вытяните полный монорепозиторий в проект докера, но запуск пряжи в нашем проекте приводит к общему размеру проекта около 700 МБ, и это в основном из-за нашего собственного приложения для реагирования, у которого даже не должно быть образа докера. Также это должно приводить к длительному извлечению образа каждый раз, когда нам нужно развернуть новую версию.
2) Каким-то образом объединять мои проекты. С нашим интерфейсом у нас есть рабочая настройка, так что все должно быть в порядке. Но я просто попытался добавить веб-пакет в наш экспресс-API, и из-за этой проблемы в моем пакете возникла ошибка: https://github.com/mapbox/node-pre-gyp/issues/308
3) Я попытался запустить yarn install только внутри необходимого проекта, но это все равно установит мои node_modules для всех моих проектов.
4) Запустите пакет npm: pkg. В результате получается один файл, готовый к запуску в определенной системе с определенной версией узла. Это ДЕЙСТВИТЕЛЬНО работает, но я не уверен, насколько хорошо он будет обрабатывать ошибки и сбои.
5) Другим решением может быть копирование проекта из рабочей области и запуск на нем пряжи. Проблема в том, что использование рабочих пространств пряжи (неявно связанных зависимостей) практически исчезло. Мне пришлось бы явно добавить другие мои зависимости рабочей области. Возможна ссылка на них из определенного хэша коммита, который я собираюсь протестировать прямо сейчас. (РЕДАКТИРОВАТЬ: вы не можете ссылаться на подкаталог как на пакет пряжи)
6) ???
Я хотел бы знать, не хватает ли мне возможности иметь только необходимые node_modules для определенного проекта, чтобы я мог сохранить свои образы докеров небольшими.