@docker_ru

Страница 34 из 1375
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 то оно не копирует туда

Или можешь показать Dockerfile второго образа ?
вот базовый докерфайл https://github.com/111h/alpine-passenger-standalone/blob/master/Dockerfile

аватарка с превью иллюстрирует именно то что я сейчас чувствую

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/app2?
ну так если я в /usr/src сую node_modules то там все ок

остальные файлы появляются в /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
или тоже самое но с /usr/src/app2 да?
да я думаю оно будет работать

проблема скорее всего в 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
есть сорцы, которые меняются, но они должны быть шарены. Каждый новый билд перекладывает сорцы в шару
Привет) volume полностью перекрывает раздел который у тебя там есть, включая node_modules. Если ты их вне контейнера поставишь, то соответственно они у тебя там будут. Варинт решения можно посмотреть в образе nodejs. Там при билде package.json копируется в условно /app, делается npm install, а файлы копируются в /app/src и туда же монтируется volume

Тефтеля
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
ну то есть ее надо заранее сделать? компос сам не сделает?
Compose файлы второй версии умеют создавать сети

Alexandr
21.09.2016
04:56:35
Для создания рабочего окружения для разработчика и для серверов на тестовом и боевом серверах
Допустим что у нас есть боевой почтовый сервер, который сейчас успешно завиртуализован в vmware, в чем резон сувать в контейнер, какой выигрыш будет от этого

Если рассматривать это не как инструмент разработки

Bogdan (SirEdvin)
21.09.2016
04:57:42
Допустим что у нас есть боевой почтовый сервер, который сейчас успешно завиртуализован в vmware, в чем резон сувать в контейнер, какой выигрыш будет от этого
Если вы можете отказаться от виртуалки и поставить туда Linux (если он там не стоит), то оверхеда будет куда меньше

Alexandr
21.09.2016
04:59:01
Никакого. Если он есть работает и там ничего больше не меняется - трогать не надо:)
Но я так понимаю можно сильно сэкономить на покупке лицензий vmware, которые недешево стоит)

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

Kulagin
21.09.2016
05:00:19
Может

Только учтите что если у вас не скриптов установки и тонкой настройки, то это головная боль

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