
Bogdan (SirEdvin)
17.04.2017
12:59:27
Как-то так можно

Pasha
17.04.2017
12:59:40
можно, но это затраты разработчика

Bogdan (SirEdvin)
17.04.2017
12:59:52
А сборки и все прочее, они все равно запускают командами, ничто не мешает им залогинится в докер и там все делать

Pasha
17.04.2017
12:59:55
ты тратишь его время на привыкание к твоим инструментам

Google

Bogdan (SirEdvin)
17.04.2017
13:00:04
Ну, тут или будешь страдать ты, или некоторые время они. Сам решай)
Магического решения тут нет.

Pasha
17.04.2017
13:00:36
по мне так крутой девопс сделает ci незаметно для разраба

Bogdan (SirEdvin)
17.04.2017
13:01:00
Он не может так сделать, он же *dev*ops

Pasha
17.04.2017
13:01:05
у тебя есть гит с кодом, дальше строй ci как тебе хочется

Bogdan (SirEdvin)
17.04.2017
13:01:10
Он должен представлять, как работает приложение и что оно использует.

Pasha
17.04.2017
13:01:21
естесно, все так

Bogdan (SirEdvin)
17.04.2017
13:01:37
Потому что если разрабам нужна будет новая версия бинарной библиотеки, как ты об этом узнаешь? Или они перейдут на новую версию ноды.

Pasha
17.04.2017
13:01:58
использовать их докерфайлы
они их сами поддерживают
а значит отказаться от базовых образов

Bogdan (SirEdvin)
17.04.2017
13:02:25
Это очень скверная идя
*идея

Google

Pasha
17.04.2017
13:02:30
об этом и был вопрос
встал вопрос о скорости сборки, для скорости нужны кэши и базовые образа

Bogdan (SirEdvin)
17.04.2017
13:02:56
По сути, ты отдаешь часть своей работы разрабам, причем тебе нужно будет постоянно ее ревьюить.
Базовый образ не обязател, он больше для удобства, если у тебя есть дев и прод образы, если не я ошибаюсь.
А вот правильный менеджмент слоев нужен

Pasha
17.04.2017
13:03:41
с кэшами понятно более менее, хотя мне бы хотелось поиметь отдельный сервак рядом с реестром, который бы отдавал всем кэши
а вот с базовыми образами - неясно, поддержка их стоит моего времени, это печально

Bogdan (SirEdvin)
17.04.2017
13:04:37
Эм .. зачем? Как уже писали - тебе кеши не нужны.

Pasha
17.04.2017
13:04:55
да как не нужны, слои закешированные
если у тебя не 1 билд хост а десяток в пуле?
на каждом держать все слои?
это странно

Anton
17.04.2017
13:07:45
Ну можно попробовать папку со кешами (или что оно там представляет) вынести по nfs куда нибудь. После того как хром работает с общим кешем, я уже не удивлюсь если и докер так может

Igor
17.04.2017
13:09:47
это странно
чего странного? у тебя на каждую тачку куда ты деплоишь свои образы, прилетают эти образы, держать копию образа на каждом из хостов тоже странно ?))

Pasha
17.04.2017
13:10:29
то же самое со слоями должно быть

Igor
17.04.2017
13:12:49
да брось, у тебя при билде все шаги закэшется, кроме того который связан с изменениями изза которых билдится образ, следовательно между двумя билдами каждый раз будет сбрасываться только этот кэш, следовательно да первый билд на тачке будет медленее последующего, но последующии билды не должны отличаться по скорости на всех тачках даже если тачка пропустила 10 билдов образа

Pasha
17.04.2017
13:14:39
что если докер-слейвов с дженкинсе десяток и каждый из них универсальный, может собирать, деплоить что угодно, любой из проектов

Google

Bogdan (SirEdvin)
17.04.2017
13:16:07
Просто dockerfile будет выглядет как-то так:
RUN установка библиотек, которые всегда будут нужны
RUN установка библиотек, которые не часто будут меняться
Ну и все остальное дальше

Igor
17.04.2017
13:16:45

Pasha
17.04.2017
13:16:52
5 минут

Igor
17.04.2017
13:17:05
именно образа по Dockerfile ?

Pasha
17.04.2017
13:17:08
да
с нуля

Igor
17.04.2017
13:17:24
а если не с нуля на той же тачке опять?

Bogdan (SirEdvin)
17.04.2017
13:17:25
Счастливый человеК)
*человек

Pasha
17.04.2017
13:17:48

Igor
17.04.2017
13:18:05
у тебя при билде образа что-то компилится?

Pasha
17.04.2017
13:18:18

Pasha
17.04.2017
13:18:30

Bogdan (SirEdvin)
17.04.2017
13:18:36

Pasha
17.04.2017
13:19:26

Igor
17.04.2017
13:19:28
так может тебе кэшить надо папку node_modules а не докер кэши/слои/итп ?

Bogdan (SirEdvin)
17.04.2017
13:20:06
Кстати, если что, папку node_modules, например, можно подключать на этапе сборки, при помощи Rocker

Pasha
17.04.2017
13:20:19

Bogdan (SirEdvin)
17.04.2017
13:20:47
rsync)

Pasha
17.04.2017
13:21:01
древние технологии)

Google

Igor
17.04.2017
13:21:13
npm юзаете?

Bogdan (SirEdvin)
17.04.2017
13:21:20
Ну, у тебя еще есть samba

Pasha
17.04.2017
13:21:28
перешли на yarn, тк он быстрее)

Anton
17.04.2017
13:21:47
node_modules можно коммитить вместе с проектом ?

Bogdan (SirEdvin)
17.04.2017
13:21:48
Хочешь новых, возьми какой нибудь ceph и страдай)

Pasha
17.04.2017
13:22:17

Дмитрий
17.04.2017
13:23:39
Кстати меня вот тоже интересует вопрос как лучше управляться с node_modules

Bogdan (SirEdvin)
17.04.2017
13:23:56
))) понятно
Ну, что-то может не прав, но быстро поискав нашел только samba и sshfs, понятно, что будет медленее

Admin
ERROR: S client not available

Дмитрий
17.04.2017
13:24:03

Igor
17.04.2017
13:24:23
кто решит проблемпу в node_modules и докером тому печеньку

Pasha
17.04.2017
13:24:50

Igor
17.04.2017
13:24:52
мы выкинули ее из образа, ставим при деплои на волум и шарим между контейнерами, но у нас все просто, все контейнеры на одном хосте

Alex
17.04.2017
13:24:57

Pasha
17.04.2017
13:24:57
он типа закешируется
и дальше когда package.json обновится - слой пересоберется

Anton
17.04.2017
13:25:21

Pasha
17.04.2017
13:25:37
а весь код остальной надо в конец докерфайла

Bogdan (SirEdvin)
17.04.2017
13:25:38

Google

Pasha
17.04.2017
13:25:55

Alex
17.04.2017
13:26:12

Дмитрий
17.04.2017
13:29:55
как дела с проектом?
Вот настраиваю сейчас докер образы для сборки) Увидел сколько модулей уже тянется и понял, что с node_modules надо что-то делать ?

Alex
17.04.2017
13:31:31

Fike
17.04.2017
13:32:08

Aleh
17.04.2017
13:33:04
а в чем вопрос с node_modules?

Alexey
17.04.2017
13:45:59

Aleh
17.04.2017
13:47:57
у нас так: npm i и сопутствующее делаем не из докерфайла, а на хосте, а потом просто в докерфайле add

Pasha
17.04.2017
13:48:38

Fike
17.04.2017
15:53:12
далеко не каждую
что значит далеко не каждую, если версия прямо пишется в package.json лол

Pasha
17.04.2017
15:54:20
лол? версия пишется при сборке артефакта, не?

Fike
17.04.2017
15:55:14
при нормальной разработке - нет
если я вообще правильно понимаю, что имеется в виду
если у вас до артефакта доходят только законченные вещи, то у вас каждый артефакт будемт с новой версией

Anton
17.04.2017
15:55:57

Fike
17.04.2017
15:57:17
Апдейт-то тут при чем? Мы про то, что в package.json проекта пишется версия этого самого проекта, поэтому при каждом выпуске этот package.json будет неизбежно обновляться. Потому что у самого проекта версия проинкрементировалась. Поэтому те, кто советуют первым слоем его кинуть, чтобы улучшить кэширование - веселые ребята

Pasha
17.04.2017
15:58:29
так что в моем случае package.json в начале докерфайла сработает ок

Fike
17.04.2017
15:59:03
хит/мисс ратио 1:1
великолепно
отличный кэш

Bogdan (SirEdvin)
17.04.2017
16:01:51