diff --git a/Dockerfile b/Dockerfile index ce3132e..8240917 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,30 +1,23 @@ -# Используем официальный образ с SDK для сборки FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build -WORKDIR /app +WORKDIR /src -# Копируем csproj и восстанавливаем зависимости -COPY *.sln . -COPY Govor.API/*.csproj ./Govor.API/ -COPY Govor.Application/*.csproj ./Govor.Application/ -COPY Govor.Core/*.csproj ./Govor.Core/ -COPY Govor.Data/*.csproj ./Govor.Data/ -COPY Govor.Contracts/*.csproj ./Govor.Contracts/ -RUN dotnet restore +COPY *.sln ./ +COPY Govor.API/*.csproj Govor.API/ +COPY Govor.Application/*.csproj Govor.Application/ +COPY Govor.Core/*.csproj Govor.Core/ +COPY Govor.Data/*.csproj Govor.Data/ +COPY Govor.Contracts/*.csproj Govor.Contracts/ +RUN dotnet restore Govor.API/Govor.API.csproj -# Копируем все исходники и билдим проект в Release режиме COPY . . -WORKDIR /app/Govor.API -RUN dotnet publish -c Release -o out +WORKDIR /src/Govor.API +RUN dotnet publish -c Release -o /app/publish -# Используем лёгкий runtime образ для запуска -FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS final WORKDIR /app +COPY --from=build /app/publish . -# Копируем билд из предыдущего этапа -COPY --from=build /app/Govor.API/out ./ - -# Указываем порт (если используется нестандартный, замени 80) +ENV ASPNETCORE_URLS=http://+:8080 EXPOSE 8080 -# Запускаем приложение ENTRYPOINT ["dotnet", "Govor.API.dll"]