Я пытаюсь переместить проект ASP.NET Core в контейнер Docker Linux, однако я не могу создать правильный образ. Когда я создаю dockerfile по умолчанию (через VisualStudio Add -> DockerSupport), он устанавливает пути для COPY ко всем проектам. Однако, когда я запускаю Docker build -t. это выскакивает ошибка "нет такого файла или каталога". Я пытался придерживаться официальной документации по докеру с перемещением ядра asp.net в контейнеры докеров, и вот код, которым я закончил:
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ./ ./
RUN dotnet restore "myproject.csproj"
COPY . .
WORKDIR "/src/myproject"
RUN dotnet build "myproject.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "myproject.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "myproject.dll"]
Это команда, которую я использую для создания образа:
docker build -t myapp -f myproject/Dockerfile .
Я собираю его из родительского каталога, потому что когда я использовал текущий рабочий каталог, он не находил все файлы .csproj. Когда я запускаю этот образ, он не работает - я знаю, что есть неправильные пути, однако я понятия не имею, где ошибка в логике. Текущая ошибка: «Программа не содержит статический метод« Main », подходящий для точки входа» и «Обнаружена фатальная ошибка. Библиотека« libhostpolicy.so », необходимая для выполнения приложения, не найдена в« / app / ». Не удалось запустить как автономное приложение. Если это должно быть приложение, зависящее от фреймворка, укажите соответствующий фреймворк в /app/myproject.runtimeconfig.json"
.