Docker NPM安装不起作用

时间:2016-04-27 15:12:19

标签: asp.net docker npm

我想在docker中公开我的asp.net核心应用程序。但是我不能让NPM工作。我尝试了下面的内容,但我得到的消息是没有找到NPM。但是我安装了nodejs,所以我想它应该可用。

知道我做错了什么吗?

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

3 个答案:

答案 0 :(得分:1)

在linux上,npm必须与nodejs分开安装。 你需要添加:

 RUN apt-get -y install npm

http://blog.teamtreehouse.com/install-node-js-npm-linux

答案 1 :(得分:1)

旧版本的Node没有捆绑npm。在某些Linux发行版中,存储库中Node的版本很老,例如在centos上它就像0.10.7。

您的应用程序可能需要安装某个版本的nodejs。如果是这样,则需要在运行之前将相关存储库作为dockerfile的一部分添加到虚拟机中

apt-get -y install nodejs

此链接提供了有关如何在您的发行版上执行此操作的一些详细信息: Stream class

如果另一方面你对你的发行版在其回购中的任何版本的Node感到满意,那么Suresh Koya的回答很好。

答案 2 :(得分: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"]