Это просто догадка, но, учитывая, что ваш Dockerfile
находится в MyProject.WebApi
и вы хотите скопировать файлы из MyProject.Common
, находящегося на том же уровне, вам может потребоваться указать другой корневой контекстный каталог, когдавыполняется docker build
:
docker build -t WebApi -f Dockerfile ../
Когда Docker создает образ, он собирает контекст - список файлов, которые доступны во время сборки и могут быть скопированы в образ.
Когда вы запускаете docker build -t WebApi .
он запускается внутри каталога MyProject.WebApi
и все файлы в каталоге .
(если у вас нет .dockerignore
file), который в данном случае равен MyProject.WebApi
, включены в контекст.Но MyProject.Common
не является частью контекста, и поэтому вы ничего не можете скопировать из него.
Надеюсь, это поможет
РЕДАКТИРОВАТЬ: Возможно, вам не нужно указывать Working Directory
(показано на скриншоте), тогда команда изменится на:
docker build -t WebApi -f MyProject.WebApi/Dockerfile .
В этом случае Docker будет использовать Dockerfile
, расположенный внутри MyProject.WebApi
, и включит в контекст все файлы, принадлежащие решению.
Вы также можете прочитать о контексте в Расширенное описание для команды docker build
в официальной документации .