FROM node:22-alpine AS builder WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci COPY . . # Build-time version info — injected by docker-compose or CI via --build-arg. ARG BUILD_VERSION=dev ARG BUILD_COMMIT=unknown # Expose as PUBLIC_ env vars so SvelteKit's $env/dynamic/public can read them. ENV PUBLIC_BUILD_VERSION=$BUILD_VERSION ENV PUBLIC_BUILD_COMMIT=$BUILD_COMMIT RUN npm run build # ── Runtime image ────────────────────────────────────────────────────────────── # adapter-node bundles all dependencies into build/ — no npm install needed. FROM node:22-alpine WORKDIR /app COPY --from=builder /app/build ./build ENV NODE_ENV=production ENV PORT=3000 ENV HOST=0.0.0.0 EXPOSE $PORT CMD ["node", "build"]