diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c09fdf5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,30 @@ +# Используем официальный образ с SDK для сборки +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +WORKDIR /app + +# Копируем 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/ +RUN dotnet restore + +# Копируем все исходники и билдим проект в Release режиме +COPY . . +WORKDIR /app/Govor.API +RUN dotnet publish -c Release -o out + +# Используем лёгкий runtime образ для запуска +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime +WORKDIR /app + +# Копируем билд из предыдущего этапа +COPY --from=build /app/Govor.API/out ./ + +# Указываем порт (если используется нестандартный, замени 80) +EXPOSE 80 +EXPOSE 443 + +# Запускаем приложение +ENTRYPOINT ["dotnet", "Govor.API.dll"] diff --git a/Govor.Console/FriendsClient.cs b/Govor.Console/FriendsClient.cs index 21d327a..1accf06 100644 --- a/Govor.Console/FriendsClient.cs +++ b/Govor.Console/FriendsClient.cs @@ -1,4 +1,3 @@ -using System.Net.Http; using System.Net.Http.Json; using Govor.Contracts.DTOs; diff --git a/Govor.sln b/Govor.sln index 2a9769a..d3eeb87 100644 --- a/Govor.sln +++ b/Govor.sln @@ -13,6 +13,9 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4ED5259A-6FB4-4D89-8E6B-4778DC68F7D4}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{114F53C1-B0AB-4BA0-9E36-0E811D1B3776}" + ProjectSection(SolutionItems) = preProject + Dockerfile = Dockerfile + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Govor.Contracts", "Govor.Contracts\Govor.Contracts.csproj", "{4E94907F-BE20-42A6-AB15-637850FEAD11}" EndProject