Dockerfile - npm: не найдено - PullRequest
       0

Dockerfile - npm: не найдено

0 голосов
/ 29 апреля 2018

Я хочу создать среду разработки для приложенияactjs. Я новичок в 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 голосов
/ 29 апреля 2018

Я подтверждаю, что узел поставляется с 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!), И этот шаг будет сделан слишком рано (с механизмом кэширования Docker), поэтому я бы предложил просто удалить эту строку ADD ./code /usr/src/app и добавить строку COPY ./code ./ после RUN npm install ...

Наконец, вы также можете взглянуть на официальную документацию по «докеризации» приложения Node.js: https://nodejs.org/en/docs/guides/nodejs-docker-webapp/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...