@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 потоков, и жрет память...
ну так и в чем разница, в докере оно упадет или на хосте?

Admin
ERROR: S client not available

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
а слово маштабировать? ?
а каких именно ресурсов вам не хватает ?

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

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