
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

Vasiliy
17.10.2018
20:44:33

Konstantin
17.10.2018
20:45:47

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

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 - будет удобно и практично.


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

Vasiliy
17.10.2018
21:04:02

Andrey
17.10.2018
21:05:08

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

Vasiliy
17.10.2018
21:06:47

Andrey
17.10.2018
21:07:21

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

Andrey
17.10.2018
21:08:11

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

Andrey
17.10.2018
21:09:07

Vasiliy
17.10.2018
21:09:59

Andrey
17.10.2018
21:10:05

Google

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

Andrey
17.10.2018
21:11:08
А на тест они не редко катят например feature бранчу. По этому собирать приходится достаточно часто

Vasiliy
17.10.2018
21:11:41

Andrey
17.10.2018
21:12:11

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

Johnny
17.10.2018
21:15:04

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

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

Vasiliy
17.10.2018
21:16:11

Andrey
17.10.2018
21:16:57

Vasiliy
17.10.2018
21:17:18

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

Andrey
17.10.2018
21:27:16

Google

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

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

Andrey
17.10.2018
21:29:33

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

Andrey
17.10.2018
21:39:16

Admin
ERROR: S client not available

Vasiliy
17.10.2018
21:39:19

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

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

Vasiliy
17.10.2018
21:45:42

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

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
вернемся к нод модулям, как докер монтирует в смонтированное?))

Vasiliy
17.10.2018
21:55:06

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

Konstantin
17.10.2018
21:56:20

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

Andrey
17.10.2018
21:57:09

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