# Build context is the repo root (see docker-compose.yml) so both src/Domain
# and src/Server are reachable.
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /src
COPY src/Domain/Domain.fsproj src/Domain/
COPY src/Server/Server.fsproj src/Server/
RUN dotnet restore src/Server/Server.fsproj
COPY src/Domain/ src/Domain/
COPY src/Server/ src/Server/
RUN dotnet publish src/Server/Server.fsproj -c Release -o /app/publish --no-restore

FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS runtime
WORKDIR /app
COPY --from=build /app/publish .
# The base image already sets ASPNETCORE_HTTP_PORTS=8080.
EXPOSE 8080
ENTRYPOINT ["dotnet", "Server.dll"]
