48 lines
744 B
Docker
48 lines
744 B
Docker
# 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
|