разработка докеров с использованием Node.js и двоичных модулей node_modules [закрыто]

Я работаю над образом докера для среды разработки для моего приложения Node.js. При запуске образа докера подключается том, так что исходный код моего приложения совместно используется с контейнером с хоста. Проблема, с которой я сталкиваюсь, заключается в том, что, в отличие от большинства проектов Node.js, я держу node_modules / под контролем версий (как рекомендовано здесь http://www.futurealoof.com/posts/nodemodules-in-git.html ).

Мне нужно вставить каталог node_modules / в контейнер во время сборки с помощью ADD для сборки двоичных модулей, а затем каким-то образом заставить мое приложение использовать их во время работы контейнера докеров после того, как том был установлен.

# Docker official ubuntu 12.04 LTS
FROM ubuntu:12.04

# See: https://launchpad.net/~chris-lea/+archive/node.js/
ENV NODEJS_VERSION 0.10.29-1chl1~precise1

# add updated node.js defacto official repository
RUN apt-get update
RUN apt-get install --yes python-software-properties
RUN add-apt-repository ppa:chris-lea/node.js

# install node.js
RUN apt-get update
RUN apt-get install --yes nodejs=${NODEJS_VERSION}

# install other dependencies via apt...

# copy files to temp directory and rebuild binary node.js modules
ADD ./node_modules /tmp/web/
WORKDIR /tmp/web
RUN npm rebuild

# expose port for app and start it
EXPOSE 5900

WORKDIR /app

# HELP: better way than copying here?
CMD cp -r /tmp/web/node_modules . && ./node_modules/.bin/forever \
  --watch app.js
2
задан 3 April 2015 в 23:03
1 ответ

Вы можете так же легко установить ваш рабочий каталог в (т.е.) /app, смонтировать ваш том в /app внутри контейнера, запустить npm перестройку оттуда, правильно?

.
0
ответ дан 3 December 2019 в 15:04

Теги

Похожие вопросы