Создание Docker: такого файла или каталога нет, откройте «/usr/src/app/package.json» - PullRequest
0 голосов
/ 17 апреля 2019

Я использую docker и docker-compose для запуска моего экспресс-узла nodejs api.

Вот мой файл докера:

FROM node:10-alpine

ARG NODE_ENV=development
ENV NODE_ENV=${NODE_ENV}

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

RUN chmod 755 /usr/src/app

CMD [ "npm", "start" ]

И как я уже упоминал, я использую docker-compose, вот содержимое файла docker-compose.yml:

version: "3"

services:
  service:
    build: .
    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules
    ports:
      - 3001:3001
    command: npm start

После запуска docker-compose я сталкиваюсь с ошибкой, которая говорит, что он не может найти package.json.

Вот ошибка:

service_1  | npm ERR! path /usr/src/app/package.json 
service_1  | npm ERR! code ENOENT 
service_1  | npm ERR! errno -2 service_1  | npm ERR! syscall open 
service_1  | npm ERR! enoent ENOENT: no such file or directory, open '/usr/src/app/package.json' 
service_1  | npm ERR! enoent This is related to npm not being able to find a file. 
service_1  | npm ERR! enoent 
service_1  | 
service_1  | npm ERR! A complete log of this run can be found in: 
service_1  | npm ERR! /root/.npm/_logs/2019-04-17T07_54_07_773Z-debug.log
xuser-api_service_1 exited with code 254

Пожалуйста, помогите найти мою ошибку.

Ответы [ 2 ]

1 голос
/ 17 апреля 2019

ваш рабочий каталог - / usr / src / app, и вы скопировали файл пакета в корневой каталог. вам нужно что-то вроде этого

# set working directory 
WORKDIR /usr/src/app

# install node_modules
ADD package.json /usr/src/app/package.json
RUN npm install

# copy codebase to docker codebase
ADD . /usr/src/app
0 голосов
/ 18 апреля 2019

Вы можете использовать старое изображение, которое не содержит последних изменений. убедитесь, что вы используете последнюю версию файла Docker.

docker-compose build 

затем запустите

docker-compose up

если вы часто изменяете Dockerfile для тестирования, используйте

docker-compose up --build
...