You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Includes updates of all nuget packages to their latest versions, except for Azure.Blob.Storage were the latest versions are not compatible with the test server we are using. Updated our docker image base to .net 8 images and upgrade the datadog tracer to 2.46.0 [CL 31000814 by joakim lindqvist in ue5-main branch]
77 lines
3.3 KiB
Plaintext
77 lines
3.3 KiB
Plaintext
# syntax=docker/dockerfile:1.2
|
|
|
|
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
|
|
|
|
WORKDIR /app
|
|
|
|
ARG UE_P4_CHANGELIST=0
|
|
|
|
# Copy csprojs for nuget restore
|
|
COPY Programs/Shared/EpicGames.Core/*.csproj ./Programs/Shared/EpicGames.Core/
|
|
COPY Programs/Shared/EpicGames.AspNet/*.csproj ./Programs/Shared/EpicGames.AspNet/
|
|
COPY Programs/Shared/EpicGames.Horde/*.csproj ./Programs/Shared/EpicGames.Horde/
|
|
COPY Programs/Shared/EpicGames.IoHash/*.csproj ./Programs/Shared/EpicGames.IoHash/
|
|
COPY Programs/Shared/EpicGames.Oodle/*.csproj ./Programs/Shared/EpicGames.Oodle/
|
|
COPY Programs/Shared/EpicGames.OIDC/*.csproj ./Programs/Shared/EpicGames.OIDC/
|
|
COPY Programs/Shared/EpicGames.Serialization/*.csproj ./Programs/Shared/EpicGames.Serialization/
|
|
COPY Programs/UnrealCloudDDC/Jupiter.Common/*.csproj ./Programs/UnrealCloudDDC/Jupiter.Common/
|
|
COPY Programs/UnrealCloudDDC/Jupiter/*.csproj ./Programs/UnrealCloudDDC/Jupiter/
|
|
RUN dotnet restore Programs/UnrealCloudDDC/Jupiter/Jupiter.csproj
|
|
# all nuget prereqs are now done
|
|
|
|
# copy the source we need
|
|
COPY Programs/Shared/ Programs/Shared/
|
|
COPY Programs/UnrealCloudDDC/ Programs/UnrealCloudDDC/
|
|
|
|
# build and create the dll
|
|
RUN dotnet publish -c Release -o out Programs/UnrealCloudDDC/Jupiter/Jupiter.csproj
|
|
|
|
# setup the base version of UnrealCloudDDC
|
|
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS unreal-cloud-ddc-base
|
|
WORKDIR /app
|
|
COPY --from=build /app/out ./
|
|
COPY Programs/UnrealCloudDDC/ThirdParty/license.txt license.txt
|
|
LABEL org.opencontainers.image.documentation https://github.com/EpicGames/UnrealEngine/blob/ue5-main/Engine/Source/Programs/UnrealCloudDDC/README.md
|
|
LABEL org.opencontainers.image.licenses "MIT"
|
|
|
|
# create the actual deployable slim image
|
|
FROM unreal-cloud-ddc-base AS unreal-cloud-ddc-slim
|
|
ENTRYPOINT dotnet Jupiter.dll
|
|
|
|
# add some useful debug tooling
|
|
FROM unreal-cloud-ddc-base AS unreal-cloud-ddc
|
|
RUN apt-get update &&\
|
|
apt-get install curl unzip procps -y &&\
|
|
rm -rf /var/lib/apt/lists/* &&\
|
|
curl -sSL https://aka.ms/getvsdbgsh | /bin/sh /dev/stdin -v latest -l /vsdbg
|
|
ENTRYPOINT dotnet Jupiter.dll
|
|
|
|
FROM unreal-cloud-ddc-base AS unreal-cloud-ddc-datadog
|
|
# Add the debugger from the normal UnrealCloudDDC build
|
|
RUN apt-get update &&\
|
|
apt-get install curl unzip procps -y &&\
|
|
rm -rf /var/lib/apt/lists/* &&\
|
|
curl -sSL https://aka.ms/getvsdbgsh | /bin/sh /dev/stdin -v latest -l /vsdbg
|
|
# Add the datadog tracer
|
|
RUN curl -LO https://github.com/DataDog/dd-trace-dotnet/releases/download/v2.46.0/datadog-dotnet-apm_2.46.0_amd64.deb
|
|
RUN dpkg -i ./datadog-dotnet-apm_2.46.0_amd64.deb
|
|
RUN /opt/datadog/createLogPath.sh
|
|
|
|
# datadog APM requirments
|
|
ENV CORECLR_ENABLE_PROFILING=1
|
|
ENV CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
|
|
ENV CORECLR_PROFILER_PATH=/opt/datadog/Datadog.Trace.ClrProfiler.Native.so
|
|
ENV DD_INTEGRATIONS=/opt/datadog/integrations.json
|
|
ENV DD_DOTNET_TRACER_HOME=/opt/datadog
|
|
# enable datadog continus profiler
|
|
ENV LD_PRELOAD=/opt/datadog/continuousprofiler/Datadog.Linux.ApiWrapper.x64.so
|
|
|
|
# Disable automatic instrumentation of APM and log injection
|
|
# We use open telemetry to send the APM stats, we have this tracer for other features like runtime metrics
|
|
ENV DD_TRACE_ENABLED=false
|
|
ENV DD_LOGS_INJECTION=false
|
|
# do not consider http 400-499 statuses errors
|
|
ENV DD_HTTP_CLIENT_ERROR_STATUSES=500-599
|
|
|
|
ENV DD_RUNTIME_METRICS_ENABLED=true
|
|
ENTRYPOINT dotnet Jupiter.dll |