Roman
под окном Hyper-V использует
Aleksey
Печаль :(
Aleksey
Ребят, кто нибудь откатывался с sierra на elcapitan?
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 без кэша и правда лучше)
Vladimir
говорили про докер?
Denis
Из коробки докер это не умеет?
Denis
https://events.yandex.ru/events/yagosti/28-july-2016/
Vladimir
фронтэнд
Vladimir
вообще в docker build по умолчанию включено кэширование
Vladimir
но вряд ли оно способно понять связь между package.json и node_modules
Denis
http://www.clock.co.uk/blog/a-guide-on-how-to-cache-npm-install-with-docker
Вот здесь автор как раз свою версию костыля даёт)
Denis
на последнем митапе Москов js про это говорили, даже выложили скриптик на bash
Да, уже смотрю. Мы там в кулуарах о своём чём-то заговорились, все доклады пропустили
Andrey
Да, уже смотрю. Мы там в кулуарах о своём чём-то заговорились, все доклады пропустили
Скорее всего, можно будем создать сторадж с node_modules и натравливать этот скриптик. По их расказам, скорость установки была почти как обычное копирование файлов)
Denis
Алексей предлагает вот этот скрипт https://gist.github.com/rndD/3f3d33456c6137294b983816a41b34c5
Denis
Оно неплохо, но не Docker-friendly
Evgeny
А чем мой вариант не вариант?
Vladimir
просто фишка ci в докере в том чтобы не кэшировать как раз ничего
Vladimir
билд с нуля
Evgeny
И снова. Штоэ? У меня полный билд пару часов будет идти. Мне забыть про сиайсиди?
Vladimir
да
Vladimir
но то есть - нет. просто билд будет 2 часа идти
Evgeny
Но зачем?
Evgeny
Ребилд с кешем 10 минут с тестами
Vladimir
то есть два часа зависимости ставятся?
Denis
А чем мой вариант не вариант?
Да вроде наоборот вариант должен быть, но каждый раз ставится всё
Evgeny
А у тебя свой билд сервер?
Evgeny
то есть два часа зависимости ставятся?
Нет, собираются разные контейнеры, билдится эрланш
Vladimir
ну вот и ответ - собирать нужно только сам проект
Denis
А у тебя свой билд сервер?
Да, in-house: www.concourse.ci
Evgeny
Да, in-house: www.concourse.ci
Тогда смотри что портит кеширование. Ты именно такой докерфайл используешь? Чтонить типа докериндокер есть?
Evgeny
ну вот и ответ - собирать нужно только сам проект
И снова я вас не понимаю. А я что собираю?
Vladimir
> @NordLuf разные контейнеры, билдится эрланш
Evgeny
Так это проект
Vladimir
ну тогда все ок
Vladimir
просто большой проект, ничего не поделаешь
Evgeny
нет
Evgeny
Нахера его собирать 2 часа?
Vladimir
потому что он большой и собирается 2 часа?
Vladimir
использование кэша приводит к тому, что рузльтат билда нельзя воспроизвести из искходиков
Vladimir
если вы готовы с этим мириться - то ок
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
просто иногда не пересобирается то, что должно пересобраться
Andrey
Да, in-house: www.concourse.ci
круто выглядит, нужно будет попробовать у себя поставить
Evgeny
Согласен, извините за наезды
Vladimir
просто старая проблема, а решения все кривые и приводят к куче потраченного времени
Evgeny
Но в вебе сейчас не так. Кеш сборки докера реально решает
Denis
Мтайм не важен
а что важно?