# Build the SPA first so build.rs embeds web/dist via ARR_WEB_DIST. FROM node:22-bookworm-slim AS web WORKDIR /src ENV CI=true RUN corepack enable && corepack prepare pnpm@11.21.0 --activate COPY web/package.json web/pnpm-lock.yaml ./web/ RUN pnpm -C web install --frozen-lockfile --config.dangerouslyAllowAllBuilds=true COPY web ./web RUN pnpm -C web build FROM rust:1-bookworm AS build WORKDIR /src COPY . . COPY --from=web /src/web/dist ./web/dist ENV ARR_WEB_DIST=/src/web/dist RUN cargo build --release -p arr-daemon FROM debian:bookworm-slim RUN apt-get update \ && apt-get install -y --no-install-recommends ffmpeg ca-certificates \ && rm -rf /var/lib/apt/lists/* COPY --from=build /src/target/release/arr /usr/local/bin/arr ENV ARR_BIND_ADDR=0.0.0.0:7878 \ ARR_DATABASE_PATH=/data/arr.db VOLUME /data EXPOSE 7878 ENTRYPOINT ["arr"]