# Stage 1: build FROM node:22-slim AS build WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci COPY . . RUN npm run build # Stage 2: runtime FROM node:22-slim AS runtime WORKDIR /app ENV NODE_ENV=production COPY package.json package-lock.json ./ RUN npm ci --omit=dev && npm cache clean --force COPY --from=build /app/dist ./dist COPY scripts ./scripts # Contenuti del Biohacking Campus (generati con sync-campus e committati nel repo) COPY campus-content ./campus-content # Tre database distinti, tutti nello stesso volume: # - piattaforme.db utenti e sessioni di quest'app (NON quelli del sito) # - longevity.db misure e punteggi, senza nomi # - identity.db la mappatura codice ↔ persona, l'unico file con dei nomi dentro ENV HOST=0.0.0.0 \ PORT=4321 \ DB_PATH=/app/data/piattaforme.db \ LONGEVITY_DB_PATH=/app/data/longevity.db \ IDENTITY_DB_PATH=/app/data/identity.db EXPOSE 4321 CMD ["node", "./dist/server/entry.mjs"]