40 lines
2.1 KiB
Docker
40 lines
2.1 KiB
Docker
# .NET Core SDK
|
|
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS aspnetcore-build
|
|
|
|
# Copy Projects
|
|
COPY LCU.Api.Internal.DataCleanUp/LCU.Api.Internal.DataCleanUp.csproj ./source/LCU.Api.Internal.DataCleanUp/
|
|
COPY LCU.Library.Internal.DataCleanUpModel/LCU.Library.Internal.DataCleanUpModel.csproj ./source/LCU.Library.Internal.DataCleanUpModel/
|
|
|
|
# Install Credential Provider and set env variables to enable Nuget restore with auth
|
|
ARG PAT=bh2lq3jibktw67b2wdbqyfln7cd3je6lk52kijntpj43v6kimpgq
|
|
RUN curl -L https://raw.githubusercontent.com/Microsoft/artifacts-credprovider/master/helpers/installcredprovider.sh | sh
|
|
#RUN wget -qO- https://raw.githubusercontent.com/Microsoft/artifacts-credprovider/master/helpers/installcredprovider.sh | bash
|
|
ENV NUGET_CREDENTIALPROVIDER_SESSIONTOKENCACHE_ENABLED true
|
|
ENV VSS_NUGET_EXTERNAL_FEED_ENDPOINTS "{\"endpointCredentials\": [{\"endpoint\":\"https://landmarkcu.pkgs.visualstudio.com/_packaging/LCU-Internal/nuget/v3/index.json\", \"password\":\"${PAT}\"}]}"
|
|
|
|
# .NET Core Restore, use auth'd feed
|
|
RUN dotnet restore -s "https://landmarkcu.pkgs.visualstudio.com/_packaging/LCU-Internal/nuget/v3/index.json" -s "https://api.nuget.org/v3/index.json" ./source/LCU.Api.Internal.DataCleanUp/LCU.Api.Internal.DataCleanUp.csproj
|
|
|
|
# Copy All Files
|
|
COPY . ./source/
|
|
|
|
FROM aspnetcore-build AS test
|
|
LABEL test=true
|
|
COPY LCU.Api.Internal.DataCleanUpTest/LCU.Api.Internal.DataCleanUpTest.csproj ./source/LCU.Api.Internal.DataCleanUpTest/
|
|
RUN dotnet restore ./source/LCU.Api.Internal.DataCleanUpTest/LCU.Api.Internal.DataCleanUpTest.csproj
|
|
RUN dotnet test -c Release --results-directory /testresults --logger "trx;LogFileName=test_results.trx" ./source/LCU.Api.Internal.DataCleanUpTest/LCU.Api.Internal.DataCleanUpTest.csproj
|
|
|
|
# .NET Core Publish
|
|
FROM aspnetcore-build as publish
|
|
RUN dotnet publish ./source/LCU.Api.Internal.DataCleanUp/LCU.Api.Internal.DataCleanUp.csproj -c Release -o /dist
|
|
|
|
# ASP.NET Core
|
|
FROM mcr.microsoft.com/dotnet/aspnet:8.0
|
|
#RUN apk add --no-cache icu-libs
|
|
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false
|
|
ENV ASPNETCORE_ENVIRONMENT=Development
|
|
|
|
WORKDIR /app
|
|
COPY --from=publish /dist .
|
|
ENTRYPOINT ["dotnet", "LCU.Api.Internal.DataCleanUp.dll"]
|