Docker

2016-04-01 39 views
3

bulunamadı nodejsDocker

FROM ruby:2.1 
RUN rm /bin/sh && ln -s /bin/bash /bin/sh 
ENV NVM_DIR /usr/local/nvm 
ENV NODE_VERSION 4.4.2 

RUN curl https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash \ 
    && source $NVM_DIR/nvm.sh \ 
    && nvm install $NODE_VERSION \ 
    && nvm alias default $NODE_VERSION \ 
    && nvm use default 


ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules 
ENV PATH  $NVM_DIR/v$NODE_VERSION/bin:$PATH 

RUN node -v 

aşağıdaki hatayı alıyorum:

Step 9 : RUN node -v ---> Running in 6e3fac36d2fc /bin/sh: node: command not found The command '/bin/sh -c node -v' returned a non-zero code: 127

düğüm yolunda bulunmazsa anlayamıyorum . nvm.sh dosyasını çalıştırmayı denedim ancak bir etkisi olmadı.

+1

:

docker build -t=jamescharlesworth-node:4.x-latest . 

Ve yorumlarınızda belirtiniz sizin Dockerfile sizin RUN yönergede içinde yüklemek komutu olacaktır elbette

? Kapsayıcınızdaki düğümün farklı sürümlerini istiyorsanız, bunların içindeki farklı sürümlerle yeni görüntüler oluşturun. – L0j1k

+1

Evet, sağ, gerçek bir nokta, neden çalışmadığına bağlı kalmadı. Aşağıdaki çalışmalara değiştiriliyor 'RUN curl -sL https://deb.nodesource.com/setup_4.x | bash - RUN apt-get install -y nodejs' – jamescharlesworth

+1

Gelecekte insanlar uğruna bir cevap yazacağım. – L0j1k

cevap

6

Düğüm sürümü yöneticisi, geliştirme makinenizde Node.js sürümlerini değiştirmek için mükemmel bir uygulamadır, ancak Docker, hem geçici hem de çıplak temel öğelerin sırasına düşürülmesi gereken belirli bir görüntü/kapsayıcı tasarımına yalvarıyor. microservices "en iyi uygulama" desteklemek için. Docker, tam bir VM'yi değil, bir işlemi yürütmenin sadece süslü bir yoludur. Bu son cümle Docker hakkında nasıl düşüneceğime çok yardımcı oldu. Ve işte bu yüzden, içinde birçok farklı Node.js sürümü olan bir kap oluşturmak yerine, görüntünüzün farklı sürümlerini oluşturarak işleri kendiniz daha kolaylaştırabilirsiniz. Bu şekilde, NVM'nin doğru sürümü seçmesini sağlayarak ortam değişkenlerini beslemeye çalışmak yerine, docker run komutunun içinde çalıştırmak istediğiniz Düğüm sürümüne başvurabilirsiniz. Örneğin: Neden bir kap içinde NVM kullanan

RUN curl -sL https://deb.nodesource.com/setup_4.x | bash - 
RUN apt-get install -y nodejs