diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index f579fd7..f1a0064 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -23,6 +23,8 @@ jobs: - 7 steps: - uses: actions/checkout@v3 + # Setup QEMU for ARM64 Build + - uses: docker/setup-qemu-action@v1 - uses: docker/setup-buildx-action@v2 with: buildkitd-flags: --debug @@ -35,7 +37,7 @@ jobs: with: context: ./dotnet file: ./dotnet/${{ matrix.tag }}/Dockerfile - platforms: linux/amd64 + platforms: linux/amd64,linux/arm64 push: true tags: | ghcr.io/parkervcp/yolks:dotnet_${{ matrix.tag }} diff --git a/dotnet/2.1/Dockerfile b/dotnet/2.1/Dockerfile index 440f50b..2dd9420 100644 --- a/dotnet/2.1/Dockerfile +++ b/dotnet/2.1/Dockerfile @@ -6,12 +6,11 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt update -y \ && apt upgrade -y \ - && apt install -y apt-transport-https wget iproute2 \ - && wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ - && dpkg -i packages-microsoft-prod.deb \ - && rm packages-microsoft-prod.deb \ - && apt update -y \ - && apt install -y aspnetcore-runtime-2.1 libgdiplus + && apt install -y apt-transport-https wget iproute2 libgdiplus \ + && wget https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh -i /usr/share -v 2.1.818 \ + && ln -s /usr/share/dotnet /usr/bin/dotnet USER container ENV USER=container HOME=/home/container diff --git a/dotnet/3.1/Dockerfile b/dotnet/3.1/Dockerfile index f655e82..d326698 100644 --- a/dotnet/3.1/Dockerfile +++ b/dotnet/3.1/Dockerfile @@ -6,12 +6,12 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt update -y \ && apt upgrade -y \ - && apt install -y apt-transport-https wget iproute2 \ - && wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ - && dpkg -i packages-microsoft-prod.deb \ - && rm packages-microsoft-prod.deb \ - && apt update -y \ - && apt install -y aspnetcore-runtime-3.1 libgdiplus + && apt install -y apt-transport-https wget iproute2 libgdiplus \ + && wget https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh -i /usr/share -v 3.1.425 \ + && ln -s /usr/share/dotnet /usr/bin/dotnet + USER container ENV USER=container HOME=/home/container diff --git a/dotnet/5/Dockerfile b/dotnet/5/Dockerfile index 2fe9f19..0fc1f46 100644 --- a/dotnet/5/Dockerfile +++ b/dotnet/5/Dockerfile @@ -6,12 +6,11 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt update -y \ && apt upgrade -y \ - && apt install -y apt-transport-https wget iproute2 \ - && wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ - && dpkg -i packages-microsoft-prod.deb \ - && rm packages-microsoft-prod.deb \ - && apt update -y \ - && apt install -y aspnetcore-runtime-5.0 libgdiplus + && apt install -y apt-transport-https wget iproute2 libgdiplus \ + && wget https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh -i /usr/share -v 5.0.408 \ + && ln -s /usr/share/dotnet /usr/bin/dotnet USER container ENV USER=container HOME=/home/container diff --git a/dotnet/6/Dockerfile b/dotnet/6/Dockerfile index 7880a3e..f12bb9f 100644 --- a/dotnet/6/Dockerfile +++ b/dotnet/6/Dockerfile @@ -6,12 +6,11 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt update -y \ && apt upgrade -y \ - && apt install -y apt-transport-https wget iproute2 \ - && wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ - && dpkg -i packages-microsoft-prod.deb \ - && rm packages-microsoft-prod.deb \ - && apt update -y \ - && apt install -y aspnetcore-runtime-6.0 libgdiplus + && apt install -y apt-transport-https wget iproute2 libgdiplus \ + && wget https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh -i /usr/share -v 6.0.403 \ + && ln -s /usr/share/dotnet /usr/bin/dotnet USER container ENV USER=container HOME=/home/container diff --git a/dotnet/7/Dockerfile b/dotnet/7/Dockerfile index 84858ad..ca2cb5d 100644 --- a/dotnet/7/Dockerfile +++ b/dotnet/7/Dockerfile @@ -1,21 +1,21 @@ -FROM --platform=$TARGETOS/$TARGETARCH ghcr.io/parkervcp/yolks:debian - -LABEL author="Torsten Widmann" maintainer="info@goover.de" - -ENV DEBIAN_FRONTEND noninteractive - -RUN apt update -y \ - && apt upgrade -y \ - && apt install -y apt-transport-https wget iproute2 \ - && wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ - && dpkg -i packages-microsoft-prod.deb \ - && rm packages-microsoft-prod.deb \ - && apt update -y \ - && apt install -y aspnetcore-runtime-7.0 libgdiplus - -USER container -ENV USER=container HOME=/home/container -WORKDIR /home/container - -COPY ./../entrypoint.sh /entrypoint.sh -CMD [ "/bin/bash", "/entrypoint.sh" ] +FROM --platform=$TARGETOS/$TARGETARCH ghcr.io/parkervcp/yolks:debian + +LABEL author="Torsten Widmann" maintainer="info@goover.de" + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt update -y \ + && apt upgrade -y \ + && apt install -y apt-transport-https wget iproute2 libgdiplus \ + && wget https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh -i /usr/share -v 7.0.100 \ + && ln -s /usr/share/dotnet /usr/bin/dotnet + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./../entrypoint.sh /entrypoint.sh +CMD [ "/bin/bash", "/entrypoint.sh" ] + diff --git a/dotnet/entrypoint.sh b/dotnet/entrypoint.sh index 11acd70..d8671f6 100644 --- a/dotnet/entrypoint.sh +++ b/dotnet/entrypoint.sh @@ -5,6 +5,9 @@ cd /home/container INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') export INTERNAL_IP +# set this variable, dotnet needs it even without it it reports to `dotnet --info` it can not start any aplication without this +export DOTNET_ROOT=/usr/share/ + # Replace Startup Variables MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') echo -e ":/home/container$ ${MODIFIED_STARTUP}"