From 6a31f380a2ac7e98dff77373861ceedf7d3f68db Mon Sep 17 00:00:00 2001 From: Anatolii Grynchuk Date: Sat, 2 May 2026 01:33:22 +0300 Subject: [PATCH] chore: add Dockerfiles for Api and Worker - Api: mcr.microsoft.com/dotnet/aspnet:10.0 base, exposes 8080 - Worker: mcr.microsoft.com/dotnet/runtime:10.0 base (no HTTP stack) - Both use multi-stage build with layer-cached csproj restore - .dockerignore excludes bin/obj/git/IDE folders - Dockerfiles added to /docker/ solution folder Ref: IT-628 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .dockerignore | 8 +++++ HrynCo.NotificationService.Api/Dockerfile | 32 ++++++++++++++++++++ HrynCo.NotificationService.Worker/Dockerfile | 31 +++++++++++++++++++ HrynCo.NotificationService.slnx | 2 ++ 4 files changed, 73 insertions(+) create mode 100644 .dockerignore create mode 100644 HrynCo.NotificationService.Api/Dockerfile create mode 100644 HrynCo.NotificationService.Worker/Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..c366a5d --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +**/.git +**/.vs +**/.idea +**/bin +**/obj +**/*.user +**/*.suo +**/TestResults \ No newline at end of file diff --git a/HrynCo.NotificationService.Api/Dockerfile b/HrynCo.NotificationService.Api/Dockerfile new file mode 100644 index 0000000..9abfd57 --- /dev/null +++ b/HrynCo.NotificationService.Api/Dockerfile @@ -0,0 +1,32 @@ +# syntax=docker/dockerfile:1.4 + +FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base +WORKDIR /app +EXPOSE 8080 + +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src + +COPY ["Directory.Build.props", "."] +COPY ["Directory.Packages.props", "."] +COPY ["HrynCo.NotificationService.DAL.Abstract/HrynCo.NotificationService.DAL.Abstract.csproj", "HrynCo.NotificationService.DAL.Abstract/"] +COPY ["HrynCo.NotificationService.DAL.EF/HrynCo.NotificationService.DAL.EF.csproj", "HrynCo.NotificationService.DAL.EF/"] +COPY ["HrynCo.NotificationService.Services/HrynCo.NotificationService.Services.csproj", "HrynCo.NotificationService.Services/"] +COPY ["HrynCo.NotificationService.Api/HrynCo.NotificationService.Api.csproj", "HrynCo.NotificationService.Api/"] + +RUN dotnet restore "HrynCo.NotificationService.Api/HrynCo.NotificationService.Api.csproj" + +COPY . . + +WORKDIR "/src/HrynCo.NotificationService.Api" +RUN dotnet build "./HrynCo.NotificationService.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build + +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./HrynCo.NotificationService.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "HrynCo.NotificationService.Api.dll"] \ No newline at end of file diff --git a/HrynCo.NotificationService.Worker/Dockerfile b/HrynCo.NotificationService.Worker/Dockerfile new file mode 100644 index 0000000..df2e1ec --- /dev/null +++ b/HrynCo.NotificationService.Worker/Dockerfile @@ -0,0 +1,31 @@ +# syntax=docker/dockerfile:1.4 + +FROM mcr.microsoft.com/dotnet/runtime:10.0 AS base +WORKDIR /app + +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src + +COPY ["Directory.Build.props", "."] +COPY ["Directory.Packages.props", "."] +COPY ["HrynCo.NotificationService.DAL.Abstract/HrynCo.NotificationService.DAL.Abstract.csproj", "HrynCo.NotificationService.DAL.Abstract/"] +COPY ["HrynCo.NotificationService.DAL.EF/HrynCo.NotificationService.DAL.EF.csproj", "HrynCo.NotificationService.DAL.EF/"] +COPY ["HrynCo.NotificationService.Services/HrynCo.NotificationService.Services.csproj", "HrynCo.NotificationService.Services/"] +COPY ["HrynCo.NotificationService.Worker/HrynCo.NotificationService.Worker.csproj", "HrynCo.NotificationService.Worker/"] + +RUN dotnet restore "HrynCo.NotificationService.Worker/HrynCo.NotificationService.Worker.csproj" + +COPY . . + +WORKDIR "/src/HrynCo.NotificationService.Worker" +RUN dotnet build "./HrynCo.NotificationService.Worker.csproj" -c $BUILD_CONFIGURATION -o /app/build + +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./HrynCo.NotificationService.Worker.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "HrynCo.NotificationService.Worker.dll"] \ No newline at end of file diff --git a/HrynCo.NotificationService.slnx b/HrynCo.NotificationService.slnx index c5698ec..c684bd9 100644 --- a/HrynCo.NotificationService.slnx +++ b/HrynCo.NotificationService.slnx @@ -2,6 +2,8 @@ + +