Dockerfile
3,219 bytes
| 1 | FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build |
|---|---|
| 2 | WORKDIR /src |
| 3 | |
| 4 | # Copy solution + Directory.Build.props |
| 5 | COPY SplitApp.Modular/SplitApp.sln . |
| 6 | COPY SplitApp.Modular/Directory.Build.props . |
| 7 | |
| 8 | # Copy all csproj files first for restore-layer caching |
| 9 | COPY SplitApp.Modular/src/SplitApp.WebApp/*.csproj src/SplitApp.WebApp/ |
| 10 | COPY SplitApp.Modular/src/Shared/SplitApp.Shared.Kernel/*.csproj src/Shared/SplitApp.Shared.Kernel/ |
| 11 | COPY SplitApp.Modular/src/Shared/SplitApp.Shared.Contracts/*.csproj src/Shared/SplitApp.Shared.Contracts/ |
| 12 | COPY SplitApp.Modular/src/Shared/SplitApp.Shared.Messaging/*.csproj src/Shared/SplitApp.Shared.Messaging/ |
| 13 | COPY SplitApp.Modular/src/Modules/Users/SplitApp.Modules.Users.Domain/*.csproj src/Modules/Users/SplitApp.Modules.Users.Domain/ |
| 14 | COPY SplitApp.Modular/src/Modules/Users/SplitApp.Modules.Users.Application/*.csproj src/Modules/Users/SplitApp.Modules.Users.Application/ |
| 15 | COPY SplitApp.Modular/src/Modules/Users/SplitApp.Modules.Users.Infrastructure/*.csproj src/Modules/Users/SplitApp.Modules.Users.Infrastructure/ |
| 16 | COPY SplitApp.Modular/src/Modules/Users/SplitApp.Modules.Users.Api/*.csproj src/Modules/Users/SplitApp.Modules.Users.Api/ |
| 17 | COPY SplitApp.Modular/src/Services/Users/SplitApp.UsersService/*.csproj src/Services/Users/SplitApp.UsersService/ |
| 18 | COPY SplitApp.Modular/src/Modules/Trips/SplitApp.Modules.Trips.Domain/*.csproj src/Modules/Trips/SplitApp.Modules.Trips.Domain/ |
| 19 | COPY SplitApp.Modular/src/Modules/Trips/SplitApp.Modules.Trips.Application/*.csproj src/Modules/Trips/SplitApp.Modules.Trips.Application/ |
| 20 | COPY SplitApp.Modular/src/Modules/Trips/SplitApp.Modules.Trips.Infrastructure/*.csproj src/Modules/Trips/SplitApp.Modules.Trips.Infrastructure/ |
| 21 | COPY SplitApp.Modular/src/Modules/Trips/SplitApp.Modules.Trips.Api/*.csproj src/Modules/Trips/SplitApp.Modules.Trips.Api/ |
| 22 | COPY SplitApp.Modular/src/Modules/Expenses/SplitApp.Modules.Expenses.Domain/*.csproj src/Modules/Expenses/SplitApp.Modules.Expenses.Domain/ |
| 23 | COPY SplitApp.Modular/src/Modules/Expenses/SplitApp.Modules.Expenses.Application/*.csproj src/Modules/Expenses/SplitApp.Modules.Expenses.Application/ |
| 24 | COPY SplitApp.Modular/src/Modules/Expenses/SplitApp.Modules.Expenses.Infrastructure/*.csproj src/Modules/Expenses/SplitApp.Modules.Expenses.Infrastructure/ |
| 25 | COPY SplitApp.Modular/src/Modules/Expenses/SplitApp.Modules.Expenses.Api/*.csproj src/Modules/Expenses/SplitApp.Modules.Expenses.Api/ |
| 26 | COPY SplitApp.Modular/tests/SplitApp.Modules.Users.Tests/*.csproj tests/SplitApp.Modules.Users.Tests/ |
| 27 | COPY SplitApp.Modular/tests/SplitApp.Modules.Trips.Tests/*.csproj tests/SplitApp.Modules.Trips.Tests/ |
| 28 | COPY SplitApp.Modular/tests/SplitApp.Modules.Expenses.Tests/*.csproj tests/SplitApp.Modules.Expenses.Tests/ |
| 29 | COPY SplitApp.Modular/tests/SplitApp.WebApp.IntegrationTests/*.csproj tests/SplitApp.WebApp.IntegrationTests/ |
| 30 | |
| 31 | RUN dotnet restore src/SplitApp.WebApp/SplitApp.WebApp.csproj |
| 32 | |
| 33 | # Copy everything else and publish the host |
| 34 | COPY SplitApp.Modular/ . |
| 35 | RUN dotnet publish src/SplitApp.WebApp/SplitApp.WebApp.csproj -c Release -o /app/publish |
| 36 | |
| 37 | FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS runtime |
| 38 | WORKDIR /app |
| 39 | COPY --from=build /app/publish . |
| 40 | ENV ASPNETCORE_URLS=http://+:8080 |
| 41 | EXPOSE 8080 |
| 42 | ENTRYPOINT ["dotnet", "SplitApp.WebApp.dll"] |
| 43 | |