# Dockerfile für den Anonymizer Service
# Läuft im Backend-Container oder standalone

FROM node:20-alpine AS base

# Installiere nötige Pakete
RUN apk add --no-cache dumb-init

WORKDIR /app

# Kopiere Package-Dateien
COPY package.json tsconfig.json ./

# Installiere Dependencies
RUN npm ci --only=production

# Dev-Stage für Entwicklung
FROM base AS dev

RUN npm ci

COPY . .

EXPOSE 3000

CMD ["dumb-init", "npm", "run", "dev"]

# Production-Stage
FROM base AS production

# Kopiere kompilierte Dateien (von Build-Stage)
COPY --from=builder /app/dist ./dist

USER node

EXPOSE 3000

CMD ["dumb-init", "node", "dist/index.js"]

# Builder-Stage (wird für Production benötigt)
FROM base AS builder

RUN npm ci

COPY . .

RUN npm run build
