Initial commit
This commit is contained in:
30
cicd/docker/Dockerfile.backend
Normal file
30
cicd/docker/Dockerfile.backend
Normal file
@@ -0,0 +1,30 @@
|
||||
# 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 apt-get update && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/*
|
||||
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"]
|
||||
Reference in New Issue
Block a user