#node.js #docker #docker-compose #path #dockerfile
#node.js #docker #docker-compose #путь #dockerfile
Вопрос:
Я начинаю изучать Docker и следую этому (очень) длинному руководству: https://www.youtube.com/watch?v=9zUHg7xjIqQ
У меня есть Dockerfile и docker-compose.yml .
Он отлично работает на моем компьютере (мы все знаем это предложение), но когда мой друг извлек то, что я сделал, он получает это сообщение об ошибке: Error response from daemon: invalid mount config for type "volume": invalid mount path: 'node_back/node_modules' mount path must be absolute
Вот мои файлы:
Dockerfile в node_back/ :
WORKDIR /app
COPY package.json .
RUN npm install
COPY . ./
EXPOSE 3000
CMD ["npm", "run", "dev"]
docker-compose в корне:
services:
back-container:
build: ./node_back
image: back-image:tag
ports:
- "3000:3000"
volumes:
- ./node_back:/app
- ./node_back/node_modules
environment:
- PORT=3000
Я использовал команду:
sudo docker-compose up -d
для запуска скрипта docker.
Может кто-нибудь объяснить мою ошибку и почему она работает на моей стороне?
Спасибо!
Комментарии:
1. Я удивлен, что вы говорите, что он отлично работает на вашем компьютере.
./node_back/node_modules
Строка всегда будет выдавать эту ошибку, AFAIK.2. да, это странно. Я использую решение Berkay Korkmaz
3. Кстати, я бы рекомендовал удалить эти
volumes:
строки. То, что они вам дают, — это очень обходной способ запускаnode
в вашей хост-системе, требующий разрешений администратора и игнорирующий обновленияpackage.json
файла. Вы можете использоватьnode
для повседневной разработки, и если вам нужно использовать Docker, запустите код, который фактически встроен в образ.
Ответ №1:
Потому что вы забыли ‘:’ в строке пути к тому.
./node_back/node_modules
вы должны использовать ‘:’ для разделения вашего локального тома и тома docker
./node_back/node_modules:WHERE-YOUR-WANT-DOCKER-PATH
Комментарии:
1. Он работает на моей стороне, спрашивая друга, все ли в порядке на его компьютере. Спасибо!
2. Я попробовал это:
- ./node_back/node_modules:/app/node_modules