# ============================================================================= # Profilarr Dockerfile # ============================================================================= # Multi-stage build for minimal final image size # # Build: docker build -t profilarr . # Run: docker run -v ./config:/config -p 6868:6868 profilarr # ----------------------------------------------------------------------------- # Stage 1: Build # ----------------------------------------------------------------------------- FROM denoland/deno:2.7.12 AS builder WORKDIR /build # Copy dependency files first (cache key) COPY deno.json deno.lock* ./ # Copy everything else COPY . . # Install dependencies (needs full source to resolve npm: imports) RUN deno install --node-modules-dir # Build the application # 1. Vite builds SvelteKit to dist/build/ # 2. Deno compiles to standalone binary # Build-time variables for version card # TARGETARCH is automatically set by Docker buildx (amd64 or arm64) ARG TARGETARCH ARG VITE_CHANNEL=stable ENV VITE_PLATFORM=docker-${TARGETARCH} ENV VITE_CHANNEL=${VITE_CHANNEL} # Build metadata stamped into src/lib/shared/build.ts so the version, channel, # and commit are inlined into both server and client bundles at vite build time. # Consumers import this file directly; no runtime config lookup. ARG PROFILARR_VERSION=dev ARG PROFILARR_COMMIT=unknown ARG PROFILARR_BUILT_AT=unknown RUN cat > src/lib/shared/build.ts <