Не удалось создать образ докера веб-API ядра ядра .net - COPY завершилась неудачно: stat /var/lib/docker/tmp/../netcoreapp2.1/publish - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь создать образ приложения .netcore v2.2 WebAPI из файла Docker.Но я получаю сообщение об ошибке «нет такого файла или каталога», когда я пытаюсь создать образ с помощью следующей команды:

docker build -t helloworld .

У меня есть как microsoft / dotnet «latest», так и «2.2-aspnetcore-runtime»"базовые образы установлены на моей машине.

Вот мой файл докера

FROM microsoft/dotnet

RUN mkdir /app
COPY ./bin/Release/netcoreapp2.2 /app
WORKDIR /app

ENTRYPOINT ["dotnet", "/app/HelloWorld.dll"]

# ASP.NET Core: Kestrel should listen on all IPs
ENV ASPNETCORE_URLS="http://0.0.0.0:5000"

Вот структура папок моего решения (я попробовал команду внутри src):

Folder Structure

Вот выходной каталог output directory

Вот подробные сведения об ошибке из докера:

COPY failed: stat /var/lib/docker/tmp/docker-builder896068669/bin/Release/netcoreapp2.2: no such file or directory

Ответы [ 2 ]

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

вы можете изменить ./bin/Release/netcoreapp2.2 на ./bin/release/netcoreapp2.2

имена папок чувствительны к регистру

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

Кажется, что файл ./bin/Release/netcoreapp2.2/publish не существует на компьютере, на котором вы работаете docker build

Когда вы запускаете docker build -t helloworld ., он копирует весь файл в . (то есть текущем каталоге, из которого вы запускаете команду) в контекст сборки , который затем будет использоваться при запуске COPY инструкции, поэтому вам нужно убедиться, что вы запускаете команду из соответствующего каталога, где файлы будут доступны для COPY

Вы также можете запустить ту же команду из другого каталога, указав путь, который будет использоваться в качестве контекста сборки, например docker build -t helloworld /path/to/my/dir

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