desenvolvimento do docker com Node.js e binary node_modules [closed]

2

Estou trabalhando em uma imagem do docker para um ambiente de desenvolvimento para meu aplicativo Node.js. Ao executar a imagem do docker, um volume é montado para que o código-fonte do meu aplicativo seja compartilhado com o contêiner do host. O problema que estou enfrentando é que, ao contrário da maioria dos projetos do Node.js, eu mantenho o node_modules / sob controle de versão (como recomendado aqui link ).

Eu preciso injetar o diretório node_modules / no contêiner durante a construção usando ADD para construir os módulos binários e, de alguma forma, usar meu aplicativo para usá-los durante a execução do contêiner docker, após o volume ter sido montado.

# 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
    
por freewil 26.06.2014 / 01:47

1 resposta

0

Você poderia facilmente definir seu diretório de trabalho para (ou seja) / app, montar seu volume em / app dentro do contêiner, executar a reconstrução de npm de lá, certo?

    
por 14.07.2014 / 14:04