Files
Randall/cicd/docker/Dockerfile.backend
Robert van Diest 51b9e5c1e7 Use tcp health check
2026-03-25 20:11:26 +01:00

30 lines
1.2 KiB
Docker

# Build stage
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /src
# Restore — copy only project files first to cache the NuGet layer
COPY src/backend/Randall.slnx src/backend/
COPY src/backend/src/Randall.Domain/Randall.Domain.csproj src/backend/src/Randall.Domain/
COPY src/backend/src/Randall.Application/Randall.Application.csproj src/backend/src/Randall.Application/
COPY src/backend/src/Randall.Infrastructure/Randall.Infrastructure.csproj src/backend/src/Randall.Infrastructure/
COPY src/backend/src/Randall.Api/Randall.Api.csproj src/backend/src/Randall.Api/
RUN dotnet restore "src/backend/src/Randall.Api/Randall.Api.csproj"
# Build — copy source only (no bin/obj/db files)
COPY src/backend/src/ src/backend/src/
RUN dotnet publish "src/backend/src/Randall.Api/Randall.Api.csproj" \
-c Release -o /app/publish
# Runtime stage
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS runtime
WORKDIR /app
RUN mkdir -p /app/data
COPY --from=build /app/publish .
ENV ASPNETCORE_URLS=http://+:8080
ENV ConnectionStrings__DefaultConnection="Data Source=/app/data/randall.db"
EXPOSE 8080
ENTRYPOINT ["dotnet", "Randall.Api.dll"]