«Ошибка копирования: исходные файлы не указаны», когда Dockerfile не находится в корневом каталоге на Docker Hub - PullRequest
0 голосов
/ 02 июля 2019

Когда я запускаю приложение через docker-compose up, оно собирается и запускается без проблем.Когда я пытаюсь разместить его на Docker Hub, он не может быть собран с ошибкой COPY failed: no source files were specified.Я считаю, что это потому, что Dockerfile не находится в корневом каталоге.

Моя структура папок выглядит следующим образом:

root
-- docker-compose.yml
-- app
   -- Dockerfile
   -- package.json
   -- package-lock.json
   -- src
      -- .....

Мой Dockerfile находится ниже, и когда я запускаю docker-compose up (которыйуказывает на Dockerfile в /app), он работает нормально:

FROM node:8.10.0-alpine
WORKDIR /usr/src/app
COPY package*.json /usr/src/app/
RUN npm install --production
COPY . /usr/src/app
EXPOSE 4000
CMD ["npm", "run", "app"]

Я хочу разместить свой проект на Docker Hub, но я получаю следующую ошибку:

Step 1/7 : FROM node:8.10.0-alpine
---> adc4b0f5bc53
Step 2/7 : WORKDIR /usr/src/app
Removing intermediate container 743246352cea
---> 3dcb720d4618
Step 3/7 : COPY package*.json /usr/src/app/
COPY failed: no source files were specified

Ниже приведены правила сборки, которые я указал для правильного расположения файла Dockerfile:

Docker Hub build rules showing Dockerfile location as app/Dockerfile

Мой Dockerfile неправильный или я не настраиваю DockerПравильно ли работает Hub, когда я пытаюсь подключить его к своему репозиторию GitHub?

Для контекста репозиторий GitHub имеет значение здесь .

1 Ответ

1 голос
/ 02 июля 2019

В конфигурации сборки вам нужно настроить каталог «контекст сборки», а не менять расположение Dockerfile.В противном случае сборка будет выполняться в родительском репозитории github, где файлы package*.json не существуют.Обратите внимание на столбец после «Расположение Dockerfile» при настройке автоматических сборок в приведенном ниже примере:

enter image description here

...