diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml
index 0b3cfac..f23cbcb 100644
--- a/.github/workflows/docker-publish.yml
+++ b/.github/workflows/docker-publish.yml
@@ -39,7 +39,7 @@ jobs:
uses: docker/build-push-action@v5
with:
context: ${{ github.workspace }}/src
- file: ${{ github.workspace }}/src/DynDNSv2/Dockerfile
+ file: ${{ github.workspace }}/src/DynDNSv2/MultiBuild.Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
diff --git a/src/DynDNSv2/DynDNSv2.csproj b/src/DynDNSv2/DynDNSv2.csproj
index 77ab1f0..74a8089 100644
--- a/src/DynDNSv2/DynDNSv2.csproj
+++ b/src/DynDNSv2/DynDNSv2.csproj
@@ -6,6 +6,7 @@
enable
enable
Linux
+
abe55787-bc11-416d-85aa-eaf544f21fe1
diff --git a/src/DynDNSv2/MultiBuild.Dockerfile b/src/DynDNSv2/MultiBuild.Dockerfile
new file mode 100644
index 0000000..effb139
--- /dev/null
+++ b/src/DynDNSv2/MultiBuild.Dockerfile
@@ -0,0 +1,21 @@
+# Learn about building .NET container images:
+# https://github.com/dotnet/dotnet-docker/blob/main/samples/README.md
+FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0-alpine AS build
+ARG TARGETARCH
+WORKDIR /source
+
+# copy csproj and restore as distinct layers
+COPY ./DynDNSv2/DynDNSv2.csproj .
+RUN dotnet restore -a $TARGETARCH
+
+# copy and publish app and libraries
+COPY ./DynDNSv2/. .
+RUN dotnet publish --no-restore -a $TARGETARCH -o /app
+
+# Enable globalization and time zones:
+# https://github.com/dotnet/dotnet-docker/blob/main/samples/enable-globalization.md
+# final stage/image
+FROM mcr.microsoft.com/dotnet/aspnet:8.0-alpine
+WORKDIR /app
+COPY --from=build /app .
+ENTRYPOINT ["./DynDNSv2"]
\ No newline at end of file