From ba9ba119c21ea94196fb67bf7a23619efe6d7f21 Mon Sep 17 00:00:00 2001 From: Andre Beging Date: Thu, 29 Jan 2026 10:32:50 +0100 Subject: [PATCH] chore: add docker deployment directory --- README.md | 2 +- docker/Dockerfile | 29 +++++++++++++++++++++++++++++ docker/docker-compose.yml | 10 ++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 docker/Dockerfile create mode 100644 docker/docker-compose.yml diff --git a/README.md b/README.md index 98c96e5..5c91511 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ ASTRAIN is a dark-mode, mobile-first workout logbook. It runs a Blazor WebAssemb Build and run the single-container setup: -- `docker compose up --build` +- `docker compose -f docker/docker-compose.yml up --build` The app will be available at http://localhost:8080 diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..970763f --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,29 @@ +# Build API +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build +WORKDIR /src +COPY src/ASTRAIN.Api/ASTRAIN.Api.csproj ASTRAIN.Api/ +COPY src/ASTRAIN.Shared/ASTRAIN.Shared.csproj ASTRAIN.Shared/ +RUN dotnet restore ASTRAIN.Api/ASTRAIN.Api.csproj +COPY src/ASTRAIN.Api/ ASTRAIN.Api/ +COPY src/ASTRAIN.Shared/ ASTRAIN.Shared/ +RUN dotnet publish ASTRAIN.Api/ASTRAIN.Api.csproj -c Release -o /app/publish + +# Build Client +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build-client +WORKDIR /src +COPY src/ASTRAIN.Client/ASTRAIN.Client.csproj ASTRAIN.Client/ +COPY src/ASTRAIN.Shared/ASTRAIN.Shared.csproj ASTRAIN.Shared/ +RUN dotnet restore ASTRAIN.Client/ASTRAIN.Client.csproj +COPY src/ASTRAIN.Client/ ASTRAIN.Client/ +COPY src/ASTRAIN.Shared/ ASTRAIN.Shared/ +RUN dotnet publish ASTRAIN.Client/ASTRAIN.Client.csproj -c Release -o /app/client + +# Final runtime +FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS runtime +WORKDIR /app +RUN mkdir -p /app/Data +COPY --from=build /app/publish/ ./ +COPY --from=build-client /app/client/wwwroot ./wwwroot +ENV ASPNETCORE_URLS=http://+:8080 +EXPOSE 8080 +ENTRYPOINT ["dotnet", "ASTRAIN.Api.dll"] diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 0000000..9be263e --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,10 @@ +version: "3.9" +services: + astrain: + build: + context: .. + dockerfile: docker/Dockerfile + ports: + - "8080:8080" + volumes: + - ./data:/app/Data