
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

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

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

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