FROM node:15-alpine as client-build WORKDIR /app COPY /src . FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim-amd64 AS build WORKDIR /source # restore packages COPY ./src/samples/server/Elsa.Samples.Server.Host/Elsa.Samples.Server.Host.csproj ./src/samples/server/Elsa.Samples.Server.Host/Elsa.Samples.Server.Host.csproj RUN dotnet restore "./src/samples/server/Elsa.Samples.Server.Host/Elsa.Samples.Server.Host.csproj" # copy required source code COPY src/. ./src COPY *.props ./ COPY ./Nuget.Config ./ # build and publish (UseAppHost=false creates platform independent binaries) WORKDIR /source/src/samples/server/Elsa.Samples.Server.Host RUN dotnet build "Elsa.Samples.Server.Host.csproj" -c Release -o /app/build RUN dotnet publish "Elsa.Samples.Server.Host.csproj" -c Release -o /app/publish /p:UseAppHost=false --no-restore # move binaries into smaller base image FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base WORKDIR /app COPY --from=build /app/publish ./ EXPOSE 80/tcp EXPOSE 443/tcp ENTRYPOINT ["dotnet", "Elsa.Samples.Server.Host.dll"]