diff --git a/src/LiveRecorder.WebApi/Dockerfile b/src/LiveRecorder.WebApi/Dockerfile
index 4608037..d3e2c08 100644
--- a/src/LiveRecorder.WebApi/Dockerfile
+++ b/src/LiveRecorder.WebApi/Dockerfile
@@ -4,16 +4,15 @@ ARG DOTNET_RUNTIME_IMAGE=mcr.microsoft.com/dotnet/aspnet:8.0-bookworm-slim
FROM ${DOTNET_SDK_IMAGE} AS build
WORKDIR /src
-COPY ["LiveRecorder.sln", "./"]
-COPY ["src/LiveRecorder.Domain/LiveRecorder.Domain.csproj", "src/LiveRecorder.Domain/"]
-COPY ["src/LiveRecorder.Application/LiveRecorder.Application.csproj", "src/LiveRecorder.Application/"]
-COPY ["src/LiveRecorder.Infrastructure/LiveRecorder.Infrastructure.csproj", "src/LiveRecorder.Infrastructure/"]
-COPY ["src/LiveRecorder.WebApi/LiveRecorder.WebApi.csproj", "src/LiveRecorder.WebApi/"]
-
-RUN dotnet restore "src/LiveRecorder.WebApi/LiveRecorder.WebApi.csproj"
-
COPY . .
-RUN dotnet publish "src/LiveRecorder.WebApi/LiveRecorder.WebApi.csproj" -c Release -o /app/publish /p:UseAppHost=false
+
+# Workaround for QEMU ARM64 emulation
+ENV DOTNET_EnableWriteXorExecute=0
+ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
+ENV DOTNET_GCConserveMemory=9
+
+RUN dotnet restore "src/LiveRecorder.WebApi/LiveRecorder.WebApi.csproj" -p:RestoreUseStaticGraphEvaluation=true
+RUN dotnet publish "src/LiveRecorder.WebApi/LiveRecorder.WebApi.csproj" -c Release -o /app/publish /p:UseAppHost=false /p:DebugType=None /p:DebugSymbols=false /maxcpucount:1
FROM ${DOTNET_RUNTIME_IMAGE} AS runtime
diff --git a/src/LiveRecorder.WebApi/LiveRecorder.WebApi.csproj b/src/LiveRecorder.WebApi/LiveRecorder.WebApi.csproj
index 252de69..e6c09cf 100644
--- a/src/LiveRecorder.WebApi/LiveRecorder.WebApi.csproj
+++ b/src/LiveRecorder.WebApi/LiveRecorder.WebApi.csproj
@@ -17,6 +17,8 @@
net8.0
enable
enable
+ linux-arm64
+ false