FROM mcr.microsoft.com/dotnet/sdk:6.0-alpine AS publish WORKDIR / COPY */*.csproj . RUN for file in $(ls *.csproj); do mkdir -p ${file%.*}/ && mv $file ${file%.*}/; done COPY *.sln . RUN dotnet restore --runtime alpine-x64 COPY . . RUN dotnet publish "WebApi/WebApi.csproj" -c Release -o /app/publish \ --no-restore \ --runtime alpine-x64 \ --self-contained true \ /p:PublishTrimmed=true \ /p: PublishSingleFile=true FROM mcr.microsoft.com/dotnet/runtime-deps:6.0-alpine AS final WORKDIR /app EXPOSE 80 EXPOSE 443 COPY --from=publish /app/publish . COPY /WebApi/appsettings.json . ENTRYPOINT ["./WebApi"]