Ошибка при запуске томов в docker toolbox - PullRequest
3 голосов
/ 28 мая 2020

Это файл docker -compose. Я уже установил папку для совместного использования виртуальной машиной Virtual Box, но она все еще не работает.

version: '3'
    services:
      postgres:
        image: 'postgres:latest'
        deploy:  
          restart_policy:  
            condition: on-failure  
            window: 15m  
      redis:
        image: 'redis:latest'
      nginx:
        restart: always
        build:
          dockerfile: Dockerfile.dev
          context: ./nginx
        ports:
          - '3050:80'  
      api:
        build:
          dockerfile: Dockerfile.dev
          context: ./server
        volumes:
          - /usr/src/app/node_modules
          - ./server:/usr/src/app
        environment:
          - REDIS_HOST=redis
          - REDIS_PORT=6379
          - PGUSER=postgres
          - PGHOST=postgres
          - PGDATABASE=postgres
          - PGPASSWORD=postgres_password
          - PGPORT=5432
      client:
        build:
          dockerfile: Dockerfile.dev
          context: ./client
        volumes:
          - /usr/src/app/node_modules
          - ./client:/usr/src/app
      worker:
        build:
          dockerfile: Dockerfile.dev
          context: ./worker
        volumes:
          - /usr/src/app/node_modules
          - ./worker:/usr/src/app 

Я запускаю его на Windows 7 sp1. Всякий раз, когда я запускаю docker-compose up - получаю ошибку:

api_1       | npm ERR! code ENOENT
api_1       | npm ERR! syscall open
api_1       | npm ERR! path /usr/src/app/package.json
api_1       | npm ERR! errno -2
api_1       | npm ERR! enoent ENOENT: no such file or directory, open '/usr/src/
app/package.json'
api_1       | npm ERR! enoent This is related to npm not being able to find a fi
le.
api_1       | npm ERR! enoent
api_1       |
api_1       | npm ERR! A complete log of this run can be found in:
api_1       | npm ERR!     /root/.npm/_logs/2020-05-28T04_06_56_121Z-debug.log
complex_api_1 exited with code 254

Заранее спасибо, помогите пожалуйста. Я пытаюсь запустить проект Фибоначчи из курса Udemy Docker и полного руководства Kubernetes. enter image description here

enter image description here

У каждой услуги свой пакет. json и другие файлы.

Сервер Docker Файл:

FROM node:alpine

WORKDIR /usr/src/app
COPY package.json .
RUN npm install

COPY . .


CMD ["npm", "run", "dev"]

Рабочий Docker Файл:

FROM node:alpine

WORKDIR /usr/src/app
COPY package.json .
RUN npm install

COPY . .

CMD ["npm", "run", "dev"]

Клиент Docker Файл:

FROM node:alpine

WORKDIR /usr/src/app
COPY package.json .
RUN npm install

COPY . .


CMD ["npm", "run", "start"]

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

У меня была такая же ошибка! На самом деле я решил переместить свой проект в / c / Users / currentUser из c / Program Files / Docker Toolbox. Может быть, у вас есть папка проекта внутри каталога Program Files, а не в каталоге Users, верно? Попробуйте с этим: просто скопируйте папку проекта внутри пользователей и запустите оттуда свой docker -compose. Дайте мне знать!

0 голосов
/ 28 мая 2020

Если вы хотите обмениваться данными между контейнерами

services:
  client:
    build:
      dockerfile: Dockerfile.dev
      context: ./client
    volumes:
      - datavolume:/usr/src/app/node_modules
      - ./client:/usr/src/app
  worker:
    build:
      dockerfile: Dockerfile.dev
      context: ./worker
    volumes:
      - datavolume:/usr/src/app/node_modules
      - ./worker:/usr/src/app 
volumes:
  datavolume: {}

Поскольку это похоже на вашего разработчика, я бы предложил смонтировать папку вашей рабочей области в контейнер


services:
  client:
    build:
      dockerfile: Dockerfile.dev
      context: ./client
    volumes:
      - ./node_modules:/usr/src/app/node_modules
      - ./client:/usr/src/app
  worker:
    build:
      dockerfile: Dockerfile.dev
      context: ./worker
    volumes:
      - ./node_modules:/usr/src/app/node_modules
      - ./worker:/usr/src/app 

И лучший способ - это лечение каждая услуга - это отдельный проект. У каждого из них должен быть свой собственный пакет. json и node_modules.

services:
  client:
    build:
      dockerfile: Dockerfile.dev
      context: ./client
    volumes:
      - ./client:/usr/src/app
  worker:
    build:
      dockerfile: Dockerfile.dev
      context: ./worker
    volumes:
      - ./worker:/usr/src/app 

На мой взгляд, нет смысла использовать одни и те же библиотеки в разных проектах для разных целей.

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