Мой контейнер не находит package.json для выполнения установки npm в docker-compose - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь развернуть приложение, используя docker-compose, и приложение находится в папке на хост-компьютере (в том же каталоге, что и файл docker-compose).

Я запускаю команду docker-compose up -d, однако кажется, что том не монтируется, потому что при выполнении команды npm install отображается следующее сообщение:

Step 3/4 : RUN npm install
 ---> Running in a09b1e8139ae
npm WARN saveError ENOENT: no such file or directory, open '/app/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/app/package.json'
npm WARN app No description
npm WARN app No repository field.
npm WARN app No README data
npm WARN app No license field.

После этого мой контейнер закрывается.

Мои файлы:

docker-compose.yml

version: '3'

services:
  github-app:
    build:
      context: ./docker
    volumes:
      # Place app files.
      - ./:/app
    ports:
      - "3000:3000"

docker / Dockerfile

FROM node:10.15.1

WORKDIR /app
RUN npm install
CMD ["npm", "start"]

Кто-нибудь знает, что я делаю не так?

1 Ответ

0 голосов
/ 28 февраля 2019

Если я не ошибаюсь.каталог docker, отвечающий за процесс сборки, будет выполнен перед монтированием каких-либо томов, поэтому образ во время сборки не будет иметь ничего, называемого package.json, поскольку он находится вне каталога контекста.попробуйте переместить dockerfile в тот же корневой каталог, где у вас есть docker-compose.yml и package.json, и обновите dockerfile с помощью

COPY . /app

Вместо того, чтобы зависеть от подключенных томов, он не будет доступен досборка сделана

...