# Stage 1: Build # Uses .env from build context for config (logo, branding, etc.) # Optional: docker build --build-arg VITE_BUILD_HASH=$(git rev-parse --short HEAD) -t flotilla . FROM node:20-bookworm AS builder RUN apt-get update && apt-get install -y --no-install-recommends curl RUN npm install -g pnpm@latest WORKDIR /app COPY package.json pnpm-lock.yaml ./ RUN pnpm i # Copy everything (including .env when present) - build.sh will source it COPY . . ARG VITE_BUILD_HASH ENV VITE_BUILD_HASH=${VITE_BUILD_HASH} ENV NODE_OPTIONS=--max_old_space_size=16384 RUN pnpm run build FROM node:20-alpine WORKDIR /app # Copy only the built output - no source, no .env, no dev deps COPY --from=builder /app/build ./build CMD ["npx", "serve", "-s", "build"]