# EcoBot — Discord-Bot + Webinterface # Stage 1: React-Frontend bauen FROM node:22-slim AS frontend WORKDIR /build COPY frontend/package.json frontend/package-lock.json ./ RUN npm ci COPY frontend ./ RUN npm run build # Stage 2: Runtime (slim statt alpine: better-sqlite3 liefert glibc-Prebuilds) FROM node:22-slim WORKDIR /app # Erst nur Manifest kopieren → Docker-Layer-Cache für npm ci COPY package.json package-lock.json ./ RUN npm ci --omit=dev COPY src ./src COPY --from=frontend /build/dist ./frontend/dist # Laufzeitdaten (SQLite) landen in /app/data → Volume RUN mkdir -p /app/data ENV NODE_ENV=production CMD ["node", "src/index.js"]