# 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"]
