@docker_ru

Страница 827 из 1375
E_zombie
17.10.2018
18:59:48
боты не умеют работать

Timur
17.10.2018
19:00:16
Хочешь присесть на бутылку за отмыв и обналы?)

E_zombie
17.10.2018
19:00:42
эти не приседают. они делятся.

Jack
17.10.2018
20:40:23
а ткните где про вольюмы прочитать. Точнее почему легально volumes: - .:/app - /app/node_modules И как это работает

Google
Jack
17.10.2018
20:46:24
а что в доке докера непонятно ?
ну мало что, понятно когда прокидываем файлы в контейнер, понятно когда делаем вольюм для данных наших. Но не понятно как работает эта строчка /app/node_modules

изначально мы маунтим целую папку, в которой и лежит нод_модулс, а потом еще как-то подмаунчиваем безымянный вольюм

что-то такое

Ivan
17.10.2018
20:49:18
шарятся файлы в app и папка app/node_modules

Jack
17.10.2018
20:50:13
шарятся файлы в app и папка app/node_modules
так вот папка с нодой - нет, она просто где-то как вольюм

Vasiliy
17.10.2018
20:50:43
Jack
17.10.2018
20:52:09
ну вообще была проблема с нодой, контейнер линуксовый, а хост макось. И бинарники с папки нод_модули не работали. В итоге нужно чтобы эта папка была сбилжена с помощью докера

нашел в инете такой метод

но не понял с маунтами

Vasiliy
17.10.2018
20:53:28
Я бы предложил не мучаться с непонятными конструкциями и маунтить docker_volume:/path/on/the/container таким образом node-modules у вас будут линуксовые и сохраняться между запусками. Просто и без изысков.

Альтернатива - забить на node-modules и каждый раз собирать их заново.

Google
Vasiliy
17.10.2018
20:55:17
покажи dockerfile/docker-compose - и пару слов - чего именно ты хочешь этим добиться.

Jack
17.10.2018
20:56:39
http://jdlm.info/articles/2016/03/06/lessons-building-node-app-docker.html

The node_modules Volume Trick

Vasiliy
17.10.2018
20:58:43
The node_modules Volume Trick
Описанный trick - требует одной архитектуры/OS на стороне docker и ОС предлагаю просто замаунтить docker-volume - будет удобно и практично.

The node_modules Volume Trick
то есть написать volumes: - .:/home/app/chat - node_modules:/home/app/chat/node_modules

Andrey
17.10.2018
21:00:03
покажи dockerfile/docker-compose - и пару слов - чего именно ты хочешь этим добиться.
Сори, вклинюсь в беседу. Для меня тож актуально. Суть достаточно проста, надо кешировать директорию node_modules между билдами. Билд может менять эту директорию, главное не качать в нее все зависимости заново при каждом билде. Потому что их обычно ооочень много и качаются они долго. И вот тож сижу, не могу понять, как работает строка - /app/node_modules предполагаю что создает из директории /app/node_modules вольюм и за счет кеша слоев его переиспользует. Но это так, полет фантазии и предположений

Это было бы просто решить, если бы при docker build можно было маунтить вольюмы. Но пока, на сколько я знаю, этого делать нельзя.

Andrey
17.10.2018
21:05:08
Ivan
17.10.2018
21:05:22
add применяется для разархивации вроде, зачем его использовать как copy?

Vasiliy
17.10.2018
21:06:47
Скок у тебя сборка идет? Вот этот самый npm install там же качается куча дерьма, долго и уныло. У меня есть проекты где node_modules весит по 300-400мб =\
сейчас на самом тяжелом проекте, включая 10 npm build - 10 минут а вообще - вот: https://medium.com/devschacht/praveen-durairaj-an-exhaustive-guide-to-writing-dockerfiles-for-node-js-web-apps-7b033bcc0b4f#3f9b

Vasiliy
17.10.2018
21:07:30
Ivan
17.10.2018
21:07:42
ADD test.tar.gz /add # Will untar the file into the test directory COPY test.tar.gz /copy # Will copy the file directly

Vasiliy
17.10.2018
21:07:58
10 минут? А фронты не ноют что долго?)
а package.json часто меняется ?

Andrey
17.10.2018
21:08:11
а package.json часто меняется ?
у меня чот да, частенько

Vasiliy
17.10.2018
21:08:17
локально у них всё быстро, а что там с CI/CD - другая история

Andrey
17.10.2018
21:09:07
локально у них всё быстро, а что там с CI/CD - другая история
у меня просто политика такая что все изменения идут через CI. по этому каждый коммит который нужно вылить на тест идет через долгий и унылый билд

Google
Vasiliy
17.10.2018
21:10:17
ну и какая тебе разница сколько оно выкатывается, если ты всё уже проверил.

Andrey
17.10.2018
21:11:08
ну и какая тебе разница сколько оно выкатывается, если ты всё уже проверил.
То что разрабы проверили у себя на тачке никого особо не волнует. Они должны выкатить это на тест. А для теста должны собрать через CI docker образ.

А на тест они не редко катят например feature бранчу. По этому собирать приходится достаточно часто

Andrey
17.10.2018
21:12:11
ну собирается он полчаса. тебе-то какая разница ?
ну пока оно собирается, разрабы как процессор ждущий IO. Вроде занят, но ниче не делает ?

Vasiliy
17.10.2018
21:12:11
я просто не могу понять твой поинт - зачем тебе быстреею

Andrey
17.10.2018
21:12:27
я просто не могу понять твой поинт - зачем тебе быстреею
Чтобы быстрее катить на тест, чтобы быстрее релизить и тд и тп

чем быстрее выкатят на тест, тем быстрее найдут баги, и выкатят правки. Ну кароч, имхо очевидно.

Vasiliy
17.10.2018
21:13:37
ну хз, у своих я вот частого изменения package.json не вижу. обычно - выкатили фичу - новый p*.js* потом пара багфиксов с тем же p*.js*

тебя именно стадия build интересует ? CI/CD какой ? Не dind ?

Andrey
17.10.2018
21:14:41
ну хз, у своих я вот частого изменения package.json не вижу. обычно - выкатили фичу - новый p*.js* потом пара багфиксов с тем же p*.js*
А я правильно понимаю что если package.json не изменился, то docker это поймет даже после COPY package*.json ./ и не будет пересобирать этот слой?

Vasiliy
17.10.2018
21:15:08
у меня так.

Andrey
17.10.2018
21:15:19
да
а это варик тогда, спасибо!

Vasiliy
17.10.2018
21:16:11
билд именно. commit -> build -> deploy to test
nodejs бывают 2х типов - компилируем статику и используем multistage у нас серверное приложение и node_modules нужно сохранить.

Andrey
17.10.2018
21:16:57
nodejs бывают 2х типов - компилируем статику и используем multistage у нас серверное приложение и node_modules нужно сохранить.
ааа, понял вопрос. Не, у меня чисто статика с add serve, т.е. вообще никакого серверного js.

Ivan
17.10.2018
21:26:33
docker идеально для nodejs, go... но java проекты хавают столько оперативки это ппц.

Andrey
17.10.2018
21:27:16
docker идеально для nodejs, go... но java проекты хавают столько оперативки это ппц.
А какая разница в докере она жрет оперативу или на хосте?)

Google
Andrey
17.10.2018
21:27:59
там в джаве кстати ключик появился чтобы она брала настройки памяти из cgroups. Хз на сколько оно рабочее, но выглядит удобно

Ivan
17.10.2018
21:29:11
и будет java cpu мучать и запускать garbage collector cleanup каждую наносекунду

Ivan
17.10.2018
21:31:01
такое приложение монолит java, 100 потоков, и жрет память...

Andrey
17.10.2018
21:39:16
такое приложение монолит java, 100 потоков, и жрет память...
ну так и в чем разница, в докере оно упадет или на хосте?

Ivan
17.10.2018
21:42:42
xmx - The flag Xmx specifies the maximum memory allocation pool for a Java virtual machine (JVM), while Xms specifies the initial memory allocation pool.

Vasiliy
17.10.2018
21:44:45
xmx - The flag Xmx specifies the maximum memory allocation pool for a Java virtual machine (JVM), while Xms specifies the initial memory allocation pool.
между тем, у меня всякая java жрёт virtual память, пока ей некий env параметр не подставишь. если подходит под твою проблему - параметр напишу.

Ivan
17.10.2018
21:45:20
найди плиз может поможет

Vasiliy
17.10.2018
21:45:42
найди плиз может поможет
повторю вопрос еще раз - какую именно память жрёт java

Ivan
17.10.2018
21:46:14
смотрел профайлером там гиг уходит на простые типы типа: int, int[], byte, byte[]....

Vasiliy
17.10.2018
21:46:19
скрин из top давай посмотрим. лучше с хоста

Ivan
17.10.2018
21:46:48
это на работе, дома нету доступа

Andrey
17.10.2018
21:46:58
смотрел профайлером там гиг уходит на простые типы типа: int, int[], byte, byte[]....
причем тут докер? Ей не велика разница где память жрать, в докере или на хосте

Vasiliy
17.10.2018
21:47:15
память бывает 3х типов: virtual resident shared ну это то, что в top отражается, не будем к словам придираться. ну будет понимание проблемы - хайлайть.

может лучше с утечками разобраться ? ну или рестартовать его раз в N-времени ?

Andrey
17.10.2018
21:49:28
так это снова не про докер ?

Ivan
17.10.2018
21:49:53
так это снова не про докер ?
а слово маштабировать? ?

Vasiliy
17.10.2018
21:50:21
а слово маштабировать? ?
а каких именно ресурсов вам не хватает ?

Andrey
17.10.2018
21:51:40
а слово маштабировать? ?
Ну опять же. Наклепай 10 процессов джавы да живи с ними ? Я не понимаю, какой у тебя вопрос. Ну течет она, она везде течь будет если приложение такое. Докер тебе только может дать возможность перезапускать приложение при превышении лимитов. Но имхо это подорожник

Google
Vasiliy
17.10.2018
21:51:46
а каких именно ресурсов вам не хватает ?
В общем, Иван, определись - что тебе именно нужно. Масштабировать тебе скорее всего не нужно. Если нужно - ты должен понять - почему именно нужно и что именно ты должен масштабировать. Пока у тебя облако в штанах.

то, что ты тут написал https://t.me/docker_ru/82680 это хрень именно то самое облако - у тебя утечки памяти и это причина масштабироваться ? ну тогда иди в кубернетес. Но я бы сначала с утечками разобрался. Варианты решения выше описаны

Jack
17.10.2018
21:54:32
вернемся к нод модулям, как докер монтирует в смонтированное?))

Andrey
17.10.2018
21:55:39
вернемся к нод модулям, как докер монтирует в смонтированное?))
а мы уже разобрались. Он не монтирует. Он кеширует слой и если у тебя package.json не изменился то node_modules не будет пересобрана

И вот Vasiliy скинул прям готовую статью по этому поводу: https://medium.com/devschacht/praveen-durairaj-an-exhaustive-guide-to-writing-dockerfiles-for-node-js-web-apps-7b033bcc0b4f

Ivan
17.10.2018
21:56:34
volume: .:/app x.conf:/app/x.conf /app/node_modules db-data:/db/data db-data:

Vasiliy
17.10.2018
21:56:47
а мы уже разобрались. Он не монтирует. Он кеширует слой и если у тебя package.json не изменился то node_modules не будет пересобрана
не-не, там был клёвый вопрос - как подмонтировать node_modules на этапе build, чтобы скачанные и собранные модули закешировались но походу - никак.

Vasiliy
17.10.2018
21:57:19
вопрос - можно ли volume подцепить на ранней стадии и воспользоваться этим ..

Andrey
17.10.2018
21:57:44
вот точно ?
стопудова https://github.com/moby/moby/issues/14080

Вот это очевиднее: https://github.com/moby/moby/issues/17745

Vasiliy
17.10.2018
22:02:55
Вот это очевиднее: https://github.com/moby/moby/issues/17745
не совсем понял на что ты ссылаешься. Можешь конкретный коммент ?

Страница 827 из 1375