Нет такого файла или каталога: Docker-compose up - PullRequest
1 голос
/ 08 апреля 2019

Я докертизировал свое среднее приложение с помощью docker-compose. Это отлично работает. Теперь я пытаюсь использовать «объемы», чтобы мое угловое приложение (с ng serve) и мое экспресс-приложение (с nodemon.js) автоматически перезапускались при кодировании. Но идентичная ошибка появляется как для углового, так и для экспресс-контейнера:

angular_1   |
angular_1   | up to date in 1.587s
angular_1   | found 0 vulnerabilities
angular_1   |
angular_1   | npm ERR! path /usr/src/app/package.json
angular_1   | npm ERR! code ENOENT
angular_1   | npm ERR! errno -2
angular_1   | npm ERR! syscall open
angular_1   | npm ERR! enoent ENOENT: no such file or directory, open '/usr/src/app/package.json'
angular_1   | npm ERR! enoent This is related to npm not being able to find a file.
angular_1   | npm ERR! enoent
angular_1   |
angular_1   | npm ERR! A complete log of this run can be found in:
angular_1   | npm ERR!     /root/.npm/_logs/2019-04-07T20_51_38_933Z-debug.log
harmonie_angular_1 exited with code 254

См. Мою иерархию папок:

-project
  -client
    -Dockerfile
    -package.json
  -server
    -Dockerfile
    -package.json
  -docker-compose.yml

Вот мой Dockerfile для угловых:

# Create image based on the official Node 10 image from dockerhub
FROM node:10

# Create a directory where our app will be placed
RUN mkdir -p /usr/src/app

# Change directory so that our commands run inside this new directory
WORKDIR /usr/src/app

# Copy dependency definitions
COPY package*.json /usr/src/app/

# Install dependecies
RUN npm install

# Get all the code needed to run the app
COPY . /usr/src/app/

# Expose the port the app runs in
EXPOSE 4200

# Serve the app
CMD ["npm", "start"]

Мой Dockerfile для экспресс:

# Create image based on the official Node 6 image from the dockerhub
FROM node:6

# Create a directory where our app will be placed
RUN mkdir -p /usr/src/app

# Change directory so that our commands run inside this new directory
WORKDIR /usr/src/app

# Copy dependency definitions
COPY package*.json /usr/src/app/

# Install dependecies
RUN npm install

# Get all the code needed to run the app
COPY . /usr/src/app/

# Expose the port the app runs in
EXPOSE 3000

# Serve the app
CMD ["npm", "start"]

И, наконец, мой docker-compose.yml

version: '3' # specify docker-compose version

# Define the services/containers to be run
services:
  angular: # name of the first service
    build: client # specify the directory of the Dockerfile
    ports:
      - "4200:4200" # specify port forwarding
#WHEN ADDING VOLUMES, ERROR APPEARS!!!!!!
    volumes:
      - ./client:/usr/src/app

  express: #name of the second service
    build: server # specify the directory of the Dockerfile
    ports:
      - "3000:3000" #specify ports forwarding
    links:
      - database
#WHEN ADDING VOLUMES, ERROR APPEARS!!!!!!
    volumes:
      - ./server:/usr/src/app

  database: # name of the third service
    image: mongo # specify image to build container from
    ports:
      - "27017:27017" # specify port forwarding

1 Ответ

0 голосов
/ 08 апреля 2019

раздел томов должен выглядеть следующим образом:

    volumes:
      - .:/usr/app
      - /usr/app/node_modules

после монтирования исходной папки node_modules в контейнере Docker «перезаписывается», поэтому вам необходимо добавить «/ usr / app / node_modules».Полный учебник с правильным docker-compose.yml - https://all4developer.blogspot.com/2019/01/docker-and-nodemodules.html

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