2016-04-27 27 views
1

Ich möchte meine asp.net Core-Anwendung in Docker offenlegen. Allerdings kann ich NPM nicht zur Arbeit bringen. Ich habe folgendes versucht, aber ich bekomme die Nachricht, dass NPM nicht gefunden wurde. Allerdings habe ich nodejs installiert, also sollte es verfügbar sein.Docker NPM Installieren funktioniert nicht

Irgendeine Idee, was ich falsch mache?

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"] 

Antwort

1

ältere Versionen von Knoten nicht npm mit ihnen gebündelt haben. Bei einigen Linux-Distributionen ist die Version von Node im Repository ziemlich alt, z. Auf Centos ist es etwa 0.10.7.

Es ist wahrscheinlich, dass Ihre Anwendung eine bestimmte Version von nodejs benötigt, um installiert zu werden. Ist dies der Fall, müssen Sie das entsprechende Repository in Ihre virtuelle Maschine als Teil des dockerfile hinzufügen vor dem Ausführen

apt-get -y install nodejs 

Dieser Link einige Details, wie gibt diese auf Ihrer Distribution zu tun: https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions.

Wenn Sie andererseits mit welcher Version von Node Ihre Distribution in ihrem Repo zufrieden ist, dann ist Suresh Koyas Antwort in Ordnung.

+0

danke für diese Antwort! –

0

Wie Sie hier sehen können: https://hub.docker.com/r/microsoft/aspnet/~/dockerfile/

FROM mono:4.0.1

mono:4.0.1:

FROM debian:wheezy Warum Sie den jessie verwenden Sie?

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"] 
Verwandte Themen