# syntax=docker/dockerfile:1 # Build Prowlarr from source with patches applied FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine AS build RUN apk add --no-cache bash git curl icu-libs nodejs npm yarn ARG PROWLARR_BRANCH="develop" WORKDIR /src RUN git clone --depth 1 --branch "${PROWLARR_BRANCH}" https://github.com/Prowlarr/Prowlarr.git . COPY patches/ /tmp/patches/ RUN git config user.email "build@local" && \ git config user.name "Build" && \ git am /tmp/patches/*.patch RUN bash build.sh --backend -r linux-musl-x64 -f net8.0 RUN yarn install --frozen-lockfile --network-timeout 120000 RUN yarn run build --env production RUN bash build.sh --packages -r linux-musl-x64 -f net8.0 FROM ghcr.io/linuxserver/baseimage-alpine:3.23 # set version label ARG BUILD_DATE ARG VERSION ARG PROWLARR_RELEASE LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="Roxedus,thespad" # environment settings ARG PROWLARR_BRANCH="master" ENV XDG_CONFIG_HOME="/config/xdg" \ COMPlus_EnableDiagnostics=0 \ TMPDIR=/run/prowlarr-temp RUN \ echo "**** install packages ****" && \ apk add -U --upgrade --no-cache \ icu-libs \ sqlite-libs \ xmlstarlet && \ echo "**** install prowlarr ****" && \ mkdir -p /app/prowlarr/bin COPY --from=build /src/_artifacts/linux-musl-x64/net8.0/Prowlarr/ /app/prowlarr/bin/ RUN \ echo -e "UpdateMethod=docker\nBranch=${PROWLARR_BRANCH}\nPackageVersion=${VERSION}\nPackageAuthor=[linuxserver.io](https://www.linuxserver.io/)" > /app/prowlarr/package_info && \ printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ echo "**** cleanup ****" && \ rm -rf \ /app/prowlarr/bin/Prowlarr.Update \ /tmp/* \ /var/tmp/* # copy local files COPY root/ / # ports and volumes EXPOSE 9696 VOLUME /config