сбой docker-compose на компьютере друга с Linux

#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