
Mihail
20.09.2016
18:29:52
Всем привет!
▫️Разработчик в web-студии
▫️Back-end разработчик
▫️Могу помочь в разных вопросах
▫️Хочу постись дзен докера
▫️Волгоград
▫️На хабре
#whois

Lupsick
20.09.2016
18:32:09
короче nginx-proxy классный

Тефтеля
20.09.2016
18:40:23
с автоматическим https вообще сказка)

Lupsick
20.09.2016
22:03:14
вообще охуеть – node_modules не появляется в билде

Google

Lupsick
20.09.2016
22:03:21
на маке работает, на серваке щас нет

Denis
20.09.2016
22:05:34
Npm install?

Lupsick
20.09.2016
22:06:52
Npm install?
оно работает если зайти в контейнер и сделать npm install
но при билде из Dockerfile оно пустое
оставляет какую-то папку _MEIoMEKBZ

Denis
20.09.2016
22:07:11
А содержимое Dockerfile?

Lupsick
20.09.2016
22:08:06
FROM 111h/alpine-passenger-standalone
ARG NODE_ENV
ARG PACKAGES=""
RUN apk add --update --no-cache $PACKAGES
COPY package.json ./
RUN NODE_ENV=$NODE_ENV npm install --unsafe-perm
COPY . ./
причем он пишет типа блаблабла пакеты блаблабла success
а в контейнере пусто
node_modules нет точнее

Denis
20.09.2016
22:11:39
Тебе бы директорию явно прописать в контейнере

Lupsick
20.09.2016
22:12:14
он же копирует все остальное

Google

Denis
20.09.2016
22:12:42
Типа WORKDIR /src перед COPY

Lupsick
20.09.2016
22:13:08
оно в образе выше
оно копирует все файлы из .
но без node_modules
внутри какая-то папка _MEIoMEKBZ
Step 5 : COPY package.json ./
---> Using cache
---> 2da3e676484f
Step 6 : RUN npm install --no-optional
---> Using cache
---> 7891f8a189bc
Step 7 : RUN ls -la
---> Running in eb2723773e91
total 16
drwxr-xr-x 2 root root 4096 Sep 20 22:33 .
drwxr-xr-x 5 root root 4096 Sep 20 21:30 ..
-rw-r--r-- 1 root root 90 Sep 14 20:45 config.ru
-rw-r--r-- 1 root root 3062 Sep 20 21:11 package.json

Denis
20.09.2016
22:35:54
Попробуй WORKDIR поставить :)

Lupsick
20.09.2016
22:36:15
видишь ls -la
пусто

Denis
20.09.2016
22:36:39
pwd

Lupsick
20.09.2016
22:39:55
pwd
http://pastebin.com/QaE0GdCQ

Denis
20.09.2016
22:40:49
FROM 111h/alpine-passenger-standalone
ARG NODE_ENV
ARG PACKAGES=""
RUN apk add —update —no-cache $PACKAGES
RUN mkdir -p /usr/src/app
# Install app dependencies
ADD package.json /usr/src/app/
RUN cd /usr/src/app && npm install
# Build the bundle
ADD . /usr/src/app/
RUN ls -al /usr/src/app
RUN cd /usr/src/app && npm run start
EXPOSE 3000
WORKDIR /usr/src/app
CMD [ "npm", "start" ]

Lupsick
20.09.2016
22:41:23
посмотри пастебин
там видно все

Denis
20.09.2016
22:42:12
да вижу

Lupsick
20.09.2016
23:17:28
да вижу
короче если я устанавливаю в /tmp эти node_modules то там они появляются
но если я копирую в свою WORKDIR после установки то в WORKDIR оно не появляется
если на уровень ниже то ок

Denis
20.09.2016
23:18:40
А что там в ls -al /src и ls -al /src/app?
Или можешь показать Dockerfile второго образа ?

Lupsick
20.09.2016
23:20:38
Или можешь показать Dockerfile второго образа ?
FROM 111h/alpine-passenger-standalone
ARG NODE_ENV
ARG PACKAGES=""
RUN apk add --update --no-cache $PACKAGES
RUN echo $APP_PATH
COPY package.json /tmp/package.json
RUN cd /tmp && NODE_ENV=$NODE_ENV npm install
RUN cp -a /tmp/node_modules /usr/src/app
RUN pwd
RUN ls -la

Google

Lupsick
20.09.2016
23:20:49
вот если оставить /usr/src/app то оно не копирует туда
аватарка с превью иллюстрирует именно то что я сейчас чувствую

Denis
20.09.2016
23:22:17
))

Lupsick
20.09.2016
23:22:19
короче я могу поставить NODE_PATH другую просто но это пиздец конечно

Denis
20.09.2016
23:23:24
COPY config.ru /usr/src/app/
вот эта строка опасная https://github.com/111h/alpine-passenger-standalone/blob/master/Dockerfile#L21

Lupsick
20.09.2016
23:25:22
да я тоже думаю про нее
но почему так

Denis
20.09.2016
23:25:25
если сделаешь тоже самое но в /usr/src/app2?
Всё заработает?

Lupsick
20.09.2016
23:25:52
остальные файлы появляются в /usr/src/app
но не node_modules

Denis
20.09.2016
23:27:00
Там gem install rack выполняется в ней, это Ruby, я хз, какие могут быть эффекты у этого
а тебе зачем вообще именно этот образ?
У тебя цель вообще какая у этого мероприятия?)

Lupsick
20.09.2016
23:27:38
и оно работает у меня на маке все ок
а так я щас красиво юзаю для руби и ноды один и тот же образ и в дев и в проде

Google

Denis
20.09.2016
23:29:25
а вот так значит

Lupsick
20.09.2016
23:29:43
короче так работает
FROM 111h/alpine-passenger-standalone
ARG NODE_ENV
ARG PACKAGES=""
RUN apk add --update --no-cache $PACKAGES
RUN echo $APP_PATH
RUN mkdir /install
COPY package.json /install
WORKDIR /install
RUN NODE_ENV=$NODE_ENV npm install
ENV NODE_PATH=/install/node_modules
WORKDIR $APP_PATH
COPY . ./
но я не понимаю почему

Denis
20.09.2016
23:30:50
или тоже самое но с /usr/src/app2 да?

Lupsick
20.09.2016
23:31:03
проблема скорее всего в VOLUME
но непонятно в какой плоскости

Denis
20.09.2016
23:34:21
https://github.com/docker/docker/issues/17470#issuecomment-167971763
Может в параметрах запуска ещё разница
Вот краткий экскурс в VOLUME http://container-solutions.com/understanding-volumes-docker/

Lupsick
21.09.2016
00:15:44
короче в VOLUME была проблема, но я все равно не понимаю почему в нем не появлялись node_modules

Тефтеля
21.09.2016
02:33:54
в образе все норм было, но когда стартует контейнер он цепляет волум
в котором ничего нету
мы при старте перекладываем из образа в волум

Denis
21.09.2016
03:03:50

Тефтеля
21.09.2016
03:12:08
если просто сбилдить образ с сорцами и при старте туда воткнуть шару, то просто там будет то, что на шаре

Denis
21.09.2016
03:16:40
Понятно. А зачем шарить таким образом? Не проще положить их в каждый образ где они нужны. Это вызовет меньше проблем.

Kulagin
21.09.2016
04:40:20

Тефтеля
21.09.2016
04:41:05
я так и сделал)

Google

Тефтеля
21.09.2016
04:41:30
меня спросили зачем я так делал

Kulagin
21.09.2016
04:42:12
Ой. Не совсем вник в суть вопроса значит)) сорри

Alexandr
21.09.2016
04:49:26
Коллеги здравствуйте, подскажите пожалуйста. Вы докеры используете как в среде разработки и деплоя тестовой среды или как полноценную замену полной виртуализации?
Хотел бы их поюзать, но наша контора не занимается полноценной разработкой

Bogdan (SirEdvin)
21.09.2016
04:52:47

Kulagin
21.09.2016
04:55:23

Alexandr
21.09.2016
04:56:35
Если рассматривать это не как инструмент разработки

Bogdan (SirEdvin)
21.09.2016
04:57:42

Kulagin
21.09.2016
04:58:06

Alexandr
21.09.2016
04:59:01
Просто стало интересно может ли контейнерная виртуализация полностью заменить полную, или это все идет как приятное дополнение к предыдущей

Kulagin
21.09.2016
05:00:19
Может
Только учтите что если у вас не скриптов установки и тонкой настройки, то это головная боль