FROM node:22-alpine AS build WORKDIR /app ENV CI=1 COPY package*.json ./ COPY apps/web/package.json apps/web/package.json COPY packages/features/builder/package.json packages/features/builder/package.json COPY packages/features/recipes/package.json packages/features/recipes/package.json COPY packages/shared/i18n/package.json packages/shared/i18n/package.json COPY packages/shared/privacy/package.json packages/shared/privacy/package.json RUN npm ci --no-audit --no-fund COPY . . RUN node scripts/build-recipes.mjs # Vite : les VITE_* sont injectées au build (CapRover : build args ou CI avec --build-arg). ARG VITE_MATOMO_URL= ARG VITE_MATOMO_SITE_ID= ENV VITE_MATOMO_URL=${VITE_MATOMO_URL} ENV VITE_MATOMO_SITE_ID=${VITE_MATOMO_SITE_ID} RUN npm run build:web FROM node:22-alpine AS runtime WORKDIR /app ENV NODE_ENV=production COPY --from=build /app/apps/web/dist ./dist RUN npm install -g serve@14.2.4 --omit=dev --no-audit --no-fund EXPOSE 3000 CMD ["serve", "-s", "dist", "-l", "3000"]