25 lines
869 B
Docker
25 lines
869 B
Docker
# --- Build stage ---
|
|
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
|
|
WORKDIR /src
|
|
|
|
# copy solution + restore-friendly files first for better layer caching
|
|
COPY JSMR.sln ./
|
|
COPY src/JSMR.Api/JSMR.Api.csproj src/JSMR.Api/
|
|
COPY src/JSMR.Application/JSMR.Application.csproj src/JSMR.Application/
|
|
COPY src/JSMR.Domain/JSMR.Domain.csproj src/JSMR.Domain/
|
|
COPY src/JSMR.Infrastructure/JSMR.Infrastructure.csproj src/JSMR.Infrastructure/
|
|
RUN dotnet restore src/JSMR.Api/JSMR.Api.csproj
|
|
|
|
# now copy the rest and publish
|
|
COPY src/ ./src/
|
|
RUN dotnet publish src/JSMR.Api/JSMR.Api.csproj -c Release -o /app/publish --no-restore
|
|
|
|
# --- Runtime stage ---
|
|
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS runtime
|
|
WORKDIR /app
|
|
COPY --from=build /app/publish ./
|
|
# optional: set ASPNETCORE_URLS to port 8080
|
|
ENV ASPNETCORE_URLS=http://+:8080
|
|
EXPOSE 8080
|
|
ENTRYPOINT ["dotnet", "JSMR.Api.dll"]
|