From 0a0a1e1909d6ea384d69a8cf493325f1945d4213 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Wei=C3=9F?= <72068105+Sandoun@users.noreply.github.com> Date: Mon, 1 Jan 2024 18:20:56 +0100 Subject: [PATCH] Fix --- .github/workflows/docker-publish.yml | 2 +- src/DynDNSv2/DynDNSv2.csproj | 1 + src/DynDNSv2/MultiBuild.Dockerfile | 21 +++++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 src/DynDNSv2/MultiBuild.Dockerfile 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