Я настраиваю Docker для личного проекта и сталкиваюсь с ошибкой пути.
Вот мой Dockerfile:
FROM node:latest
WORKDIR /Users/Alex/funky-ducks/mediumrare/mediumrare
COPY ./ ./
RUN npm install
CMD ["/bin/bash"]
Мой файл docker-compose.yml:
version: '3.7'
services:
mediumrare_docker:
container_name: container001
build: /Users/Alex/funky-ducks/mediumrare/mediumrare
command: npm start
ports:
- "3000:3000"
Это моя файловая структура каталогов (примечание ниже docker-compose.yml "mediumrare" - это front-end / mediumrare_server - это бэкэнд):
.
└── mediumrare
├── Dockerfile
├── README.md
├── docker-compose.yml
├── mediumrare
│ ├── README.md
│ ├── node_modules
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ ├── src
│ └── yarn.lock
├── mediumrare_server
│ ├── node_modules
│ ├── package-lock.json
│ ├── package.json
│ └── server.js
├── package-lock.json
└── package.json
Я попытался создать файл package.json в верхнем каталоге и зафиксировать файл package-lock.json.
Когда я запускаю docker-compose up
, я получаю следующее сообщение об ошибке:
Creating container001 ... done
Attaching to container001
container001 | npm ERR! path /Users/Alex/funky-ducks/mediumrare/mediumrare/mediumrare_server/package.json
container001 | npm ERR! code ENOENT
container001 | npm ERR! errno -2
container001 | npm ERR! syscall open
container001 | npm ERR! enoent ENOENT: no such file or directory, open '/Users/Alex/funky-ducks/mediumrare/mediumrare/mediumrare_server/package.json'
container001 | npm ERR! enoent This is related to npm not being able to find a file.
container001 | npm ERR! enoent
container001 |
container001 | npm ERR! A complete log of this run can be found in:
container001 | npm ERR! /root/.npm/_logs/2019-05-21T17_39_18_298Z-debug.log
container001 exited with code 254
Я вижу, что когда он собирается, он ищет файл package.json внутри каталога "mediumrare_server". Однако файл package.json является верхним каталогом mediumrare. Почему он не находит этот файл и как я могу исправить эту ошибку? Спасибо!