2016-04-27 12 views
1

私のasp.netコアアプリケーションをドッカーに公開したいと思います。しかし、私はNPMを働かせることはできません。私は以下のことを試しましたが、NPMが見つからないというメッセージが表示されます。しかし、私はnodejsをインストールしたので、私はそれが利用可能になるはずです。Docker NPM Install Not working

私は間違っていると思いますか?

FROM microsoft/aspnet:1.0.0-rc1-update1-coreclr 

ADD package.json /tmp/package.json 

RUN printf "deb http://ftp.us.debian.org/debian jessie main\n" >> /etc/apt/sources.list 
RUN apt-get -qq update && apt-get install -qqy sqlite3 libsqlite3-dev && rm -rf /var/lib/apt/lists/* 
RUN apt-get update 
RUN apt-get -y install nodejs && cd /tmp && npm install 


COPY . /app 
WORKDIR /app 
RUN ["dnu", "restore"] 


EXPOSE 5001/tcp 
ENTRYPOINT ["dnx", "-p", "project.json", "web"] 

答えて

1

古いバージョンでは、それらにバンドルNPMを持っていませんでした。いくつかのLinuxディストリビューションでは、リポジトリ内のNodeのバージョンはかなり古くなっています。それは0.10.7のようなものです。

アプリケーションでは、特定のバージョンのnodejをインストールする必要があります。 https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions:これがそうである場合は、このリンクはあなたのディストリビューションでこれを行う方法のいくつかの詳細を与える

apt-get -y install nodejs 

を実行する前に、dockerfileの一環として、仮想マシンに関連するリポジトリを追加する必要があります。

一方、あなたのディストリビューションのリポジトリにあるバージョンのノードがあれば、Suresh Koyaの答えはうまくいきます。

+0

この回答ありがとうございます! –

0

あなたがここに見ることができるように: https://hub.docker.com/r/microsoft/aspnet/~/dockerfile/

FROM mono:4.0.1

mono:4.0.1

FROM debian:wheezy なぜあなたはジェシーを使うのですか?

RUN printf "deb http://ftp.us.debian.org/debian jessie main\n" >> /etc/apt/sources.list 



FROM microsoft/aspnet:1.0.0-rc1-update1-coreclr 

ADD package.json /tmp/package.json 

RUN printf "deb http://ftp.us.debian.org/debian jessie main\n" >> /etc/apt/sources.list 
RUN apt-get -qq update && apt-get install -qqy sqlite3 libsqlite3-dev && \ 
apt-get -y install nodejs npm && cd /tmp && npm install && \ 
rm -rf /var/lib/apt/lists/* 

COPY . /app 
WORKDIR /app 
RUN ["dnu", "restore"] 


EXPOSE 5001/tcp 
ENTRYPOINT ["dnx", "-p", "project.json", "web"]