FROM ghcr.io/linuxserver/baseimage-alpine:3.20 as base FROM base as build ARG TARGETPLATFORM ARG DOCKER_ARCH RUN \ echo "**** install build packages ****" && \ apk --no-cache add \ binutils-gold \ openssl \ zlib \ libstdc++ \ dotnet6-sdk WORKDIR /app COPY --chown=root:root . /app RUN if [ "$DOCKER_ARCH" = "amd64" ] || [ "$TARGETPLATFORM" = "linux/amd64" ]; then export DN_RUNTIME=linux-musl-x64; echo 'Building x64'; fi \ && if [ "$DOCKER_ARCH" = "arm64" ] || [ "$TARGETPLATFORM" = "linux/arm64" ]; then export DN_RUNTIME=linux-musl-arm64; echo 'Build ARM'; fi \ && dotnet publish -c Release -r "$DN_RUNTIME" -p:PublishSingleFile=true -p:PublishTrimmed=true --self-contained true -o build \ && rm -f build/*.pdb FROM base as app ENV TZ=Etc/GMT RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone RUN \ echo "**** install runtime packages ****" && \ apk --no-cache add \ dotnet6-runtime && \ echo "**** cleanup ****" && \ rm -rf \ /root/.cache \ /tmp/* ENV DOCKER_MODS=linuxserver/mods:universal-cron COPY docker/root/ / COPY --from=build /app/build/* /usr/bin/