Dockerfile - npm:找不到

时间:2018-04-29 16:32:57

标签: reactjs docker npm

我想为reactjs应用程序创建开发环境。我是Docker的新手,并一直在尝试使用Docker创建一个环境。下面是我的Dockerfile代码。

# Base node image
FROM node

# create working directory
ADD ./code /usr/src/app
WORKDIR /usr/src/app

# add node_modules path to environment
ENV PATH /usr/src/app/node_modules/.bin:PATH

# copy and install dependencies
COPY ./code/package.json /usr/src/app/package.json
RUN npm install --quiet
RUN npm install react-scripts@1.1.1 -g --silent

# start app
# CMD ["npm","start"]

但是,我收到的错误是npm:在RUN npm install --quiet

行找不到

请帮忙。

1 个答案:

答案 0 :(得分:4)

我确认该节点附带npm:

$ docker run -it --rm node /bin/bash
root@b35e1a6d68f8:/# npm --version
5.6.0

但该行

ENV PATH /usr/src/app/node_modules/.bin:PATH

覆盖初始PATH,因此您应该尝试用

替换它
ENV PATH /usr/src/app/node_modules/.bin:${PATH}

另外,请注意您的ADD ./code ...行是笨拙的,因为它会添加应用程序的所有文件(包括./code/package.json!)而且这一步太早了(wrt Docker' s缓存机制),所以我建议只删除该行ADD ./code /usr/src/app并在 COPY ./code ./之后添加一行RUN npm install ...

最后,您可能还想看一下" dockerizing"的官方文档。一个Node.js应用程序:https://nodejs.org/en/docs/guides/nodejs-docker-webapp/