Dockerfile сообщает, что копирование не удалось: - PullRequest
0 голосов
/ 17 января 2019

Добрый день, ребята,

Я новичок в докере и хочу контейнировать свое приложение ASP.NET Core, но появляется ошибка, и я не могу продолжить создание своего образа

Вот мой пример Dockerfile

FROM microsoft/dotnet:latest
COPY . /app
WORKDIR /app/MyWebApp
RUN dotnet build
RUN dotnet publish -c Release -o out

FROM microsoft/dotnet:2.1-aspnetcore-runtime
EXPOSE 80
WORKDIR /app
COPY ${source:-MyWebApp/out} .
ENTRYPOINT ["dotnet", "MyWebApp.dll"]

Я достиг всех шагов, кроме последних 2-х шагов в конце. Ошибка говорит,

"Ошибка копирования: stat / var / lib / docker / tmp / docker-builder ___ / MyWebApp / out: нет такого файла или каталога"

Ответы [ 2 ]

0 голосов
/ 18 января 2019

В вашем файле Docker есть две проблемы.

  1. Ваши версии ядра .net не совпадают между FROM microsoft/dotnet:latest и FROM microsoft/dotnet:2.1-aspnetcore-runtime
  2. Попробуйте AS publish для публикации вывода.

Вот рабочий докер-файл

FROM microsoft/dotnet:2.1-sdk AS publish
COPY . /app
WORKDIR /app/MyWebApp
RUN dotnet build
RUN dotnet publish -c Release -o out

FROM microsoft/dotnet:2.1-aspnetcore-runtime 
EXPOSE 80
WORKDIR /app
COPY --from=publish /app/MyWebApp/out .

ENTRYPOINT ["dotnet", "MyWebApp.dll"]
0 голосов
/ 17 января 2019

Опубликовать создает каталог назначения в следующем формате:

bin\$(Configuration)\netcoreapp<version>\publish

Таким образом, ваш каталог будет создан в:

COPY ${source:-MyWebApp/bin/Release/netcoreapp<version>/publish/out} .

Примечание: замените <version> на вашу версию .net

Подробнее об этом можно прочитать здесь

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