Roman
под окном Hyper-V использует
Denis
Aleksey
Печаль :(
Aleksey
Ребят, кто нибудь откатывался с sierra на elcapitan?
Denis
Vladimir
@DenisIzmaylov а в чем смысл?
Aleksey
Наверное в том чтобы контейнеры не разбухали.
Vladimir
чтобы они не разбухали, нужно меньше в них класть, какие еще варианты
Denis
@DenisIzmaylov а в чем смысл?
В том, что мы используем Concourse.ci и он всё собирает в контейнерах. В частности при git-commit, мы пересобираем контейнер и сейчас я обнаружил, что он каждый раз делает npm install.
Vladimir
а в чем проблема?
Denis
Это долго
Denis
http://www.clock.co.uk/blog/a-guide-on-how-to-cache-npm-install-with-docker
Denis
А вот этот подход почему-то не срабатывает, может быть не актуален для современных версий (статья от 2014го)
Vladimir
Мы например собираем приложения на circleci под андроид, там при каждом билде скачивается и устанавливается android sdk
Vladimir
долго, зато просто и наджено
Vladimir
любое кэширование потенциально приводит к невоспроизводимым билдам
Denis
Это да, но для ветки dev можно использовать кэш
Denis
Для stage и prod без кэша и правда лучше)
Andrey
Vladimir
говорили про докер?
Denis
Из коробки докер это не умеет?
Denis
https://events.yandex.ru/events/yagosti/28-july-2016/
Vladimir
фронтэнд
Vladimir
вообще в docker build по умолчанию включено кэширование
Vladimir
но вряд ли оно способно понять связь между package.json и node_modules
Denis
Denis
Алексей предлагает вот этот скрипт https://gist.github.com/rndD/3f3d33456c6137294b983816a41b34c5
Denis
Оно неплохо, но не Docker-friendly
Evgeny
А чем мой вариант не вариант?
Vladimir
просто фишка ci в докере в том чтобы не кэшировать как раз ничего
Evgeny
Vladimir
билд с нуля
Evgeny
И снова. Штоэ? У меня полный билд пару часов будет идти. Мне забыть про сиайсиди?
Vladimir
да
Vladimir
но то есть - нет. просто билд будет 2 часа идти
Evgeny
Но зачем?
Evgeny
Ребилд с кешем 10 минут с тестами
Vladimir
то есть два часа зависимости ставятся?
Evgeny
А у тебя свой билд сервер?
Vladimir
ну вот и ответ - собирать нужно только сам проект
Evgeny
Vladimir
> @NordLuf
разные контейнеры, билдится эрланш
Evgeny
Так это проект
Vladimir
ну тогда все ок
Vladimir
просто большой проект, ничего не поделаешь
Evgeny
нет
Evgeny
Нахера его собирать 2 часа?
Vladimir
потому что он большой и собирается 2 часа?
Vladimir
использование кэша приводит к тому, что рузльтат билда нельзя воспроизвести из искходиков
Vladimir
если вы готовы с этим мириться - то ок
Evgeny
Evgeny
Штааааа?
Vladimir
результат билда зависит от состояния кэша
Denis
...This means that every time a build is triggered, either manually or by a new Git commit, a fresh Git clone of the application’s repository occurs. When this happens the mtime of all the cloned files are set to the time of when the clone occurred (including our application’s package.json)...
Evgeny
Кеш дает возможность не делать одинаковые действия если из нее надо делать
Evgeny
Мтайм не важен
Vladimir
В моей практике куча проблема сборки магически решалась при полном билде с нуля
Evgeny
Магии там никогда нет
Vladimir
магии вообще нет - есть необъяснимое и малопонятное поведение
Vladimir
которое решается гарантировано сборко с нуля
Evgeny
В моей практике вся эта магия всегда объяснима и подсказывает проблему
Evgeny
Которую надо решить один раз и дальше экономить время
Evgeny
Решение "хрен его знает что происходит" для своего проекта - моветон
Vladimir
причем здесь "свой проект". речь о тулченах и проблемах, которые испытвают всю
Vladimir
я правда в первую очередь с таким сталкивался в мобильной разработке
Vladimir
особенно в икскоде
Vladimir
и в андроиде с ndk
Vladimir
просто иногда не пересобирается то, что должно пересобраться
Evgeny
Evgeny
Согласен, извините за наезды
Vladimir
просто старая проблема, а решения все кривые и приводят к куче потраченного времени
Evgeny
Но в вебе сейчас не так. Кеш сборки докера реально решает
Denis