Задать вопрос
@pshevnin

Почему контейнер успешно создается локально, но не создаётся из регистра?

Всем привет, у меня такая проблема: Я создал API на asp .net, которое запускается в контейнере через командную строку. вот Dockerfile:
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM base AS build
WORKDIR /src
COPY ["WebApi/WebApi.csproj", "WebApi/"]
RUN dotnet restore "WebApi/WebApi.csproj"
COPY ["WebApi", "WebApi/"]
WORKDIR "/src/WebApi"
RUN dotnet build "WebApi.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "WebApi.csproj" -c Release -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApi.dll"]


Проблема в том, что после того, как я создаю образ локально, я также хочу отправить этот образ в локальный реестр и запускать оттуда на другом компьютере (на первом компьютере Windows, на втором - Linux, не знаю, может ли это влиять на результат) После отправки образа в реестр, и создания контейнера из реестра, контейнер на том компьютере создаётся и выдаёт такую ошибку:
Possible reasons for this include:
  * You misspelled a built-in dotnet command.
  * You intended to execute a .NET program, but dotnet-WebApi.dll does not exist.
  * You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH

С чем это может быть связано? WebApi - это название всего сервиса, то есть он не находит весь файл проекта
  • Вопрос задан
  • 177 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
AshBlade
@AshBlade
Просто хочу быть счастливым
В докерфайле не вижу слоя с рантаймом - только sdk.
Посмотри шаблон тут - https://learn.microsoft.com/ru-ru/dotnet/core/dock...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы