#Что означает ошибка
COPY failed
Файл вне контекста сборки или исключён .dockerignore. Проверьте путь относительно контекста.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Вне контекста | Исходник COPY лежит выше корня контекста. | Задайте правильную корневую папку контекста. |
| .dockerignore | Шаблон .dockerignore исключает файл. | Скорректируйте только подходящее правило. |
| Опечатка | Регистр имени в COPY не совпадает. | Исправьте имя по файлам контекста. |
| Неверный контекст | docker build выполнен из неверной папки. | Запустите с правильной точкой контекста и -f. |
#Пошаговое решение
- Проверьте, какой контекст передан DockerВ каталоге проекта откройте Dockerfile и найдите точную строку
COPY. У командыdocker build -t myapp .последняя точка означает текущую папку как контекст. Путь источника вCOPYотсчитывается от корня контекста, а не от местонахождения Dockerfile. - Сверьте путь и .dockerignoreОткройте каталог контекста через Проводник/терминал и найдите исходный файл, указанной в
COPYс учётом регистра букв. Затем откройте.dockerignoreи проверьте, не исключён ли файл целиком либо через шаблон. Например,COPY package.json /app/работает, лишь когдаpackage.jsonвключён в контекст. - Исправьте источник безопасноЕсли Dockerfile хранится в
docker/, а проект — в корне, запускайте сборку из корня с явным указанием файла:docker build -f docker/Dockerfile -t myapp .; убедитесь, что содержимое контекста не включает пароли и.env. Не пытайтесь скопировать файл за пределами контекста через../— Docker запрещает такой доступ. - Повторите сборку и проверьте журналВыполните исправленную команду и прочитайте результат шага COPY. Если возникла новая ошибка, это может означать, что файл теперь найден и сборка дошла до следующего этапа. Для точной диагностики сохраните Dockerfile, .dockerignore, рабочий каталог и строку build; не используйте глобальную очистку Docker.
#Если проблема осталась
Если «Docker build: COPY failed — file not found in build context» повторяется, сохраните время, состояние подключения и точный текст ошибки. Не меняйте сразу несколько настроек — иначе станет трудно понять, какое действие повлияло на результат.