chore: add docker deployment directory

This commit is contained in:
Andre Beging
2026-01-29 10:32:50 +01:00
parent 7c6bfd891c
commit ba9ba119c2
3 changed files with 40 additions and 1 deletions

View File

@@ -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

29
docker/Dockerfile Normal file
View File

@@ -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"]

10
docker/docker-compose.yml Normal file
View File

@@ -0,0 +1,10 @@
version: "3.9"
services:
astrain:
build:
context: ..
dockerfile: docker/Dockerfile
ports:
- "8080:8080"
volumes:
- ./data:/app/Data