2017-08-30 100 views
0

Dockerfile如下圖所示:碼頭工人不識別NPM install命令並拋出錯誤

From ubuntu:14.04 

WORKDIR /app 

#COPY package.json /app/package.json 
COPY . /app 
RUN npm install 

EXPOSE 3000 

CMD ["npm","start"] 

現在,當我運行命令sudo docker -t my-app .。它給我以下錯誤:

Sending build context to Docker daemon 453.6 kB Sending build context to Docker daemon Step 0 : FROM ubuntu:14.04 ---> 37a9c4a8276c Step 1 : WORKDIR /app ---> Using cache ---> a83d4ef27948 Step 2 : COPY . /app ---> 1029f5d7d8a3 Removing intermediate container eb9e7ea7f7e6 Step 3 : RUN npm install ---> Running in 5d4f2c05d2d8 /bin/sh: 1: npm: not found INFO[0000] The command [/bin/sh -c npm install] returned a non-zero code: 127

我的Dockerfile中是否有缺失?

回答

1

這是預期的。由於基本映像是Ubuntu,因此您的映像沒有安裝節點。您應該使用node圖像作爲基礎圖像。

From node 

WORKDIR /app 

#COPY package.json /app/package.json 
COPY . /app 
RUN npm install 

EXPOSE 3000 

CMD ["npm","start"] 
1

你Dockerfile正在建設香草Ubuntu的FROM ubuntu:14.04,所以如果你想使用NPM /節點在容器中,您需要安裝加入RUN命令來安裝節點節點自己,下面安裝instructions的Ubuntu。

取而代之的是,你可能想簡單地使用官方的節點圖像的發現:

https://hub.docker.com/_/node/

FROM node

或使用像

FROM node:8.4.0-wheezy特定版本/發行

(其他標籤/版本/發行版在碼頭集線器頁面上列出)