Files
void-genesis/dev/lobby-backend/Dockerfile.dev
T
2026-05-26 20:18:12 +02:00

32 lines
1.5 KiB
Docker

# ==============================================================================
# Void-Genesis - Lobby Backend (Dev Environment)
# ==============================================================================
# Wir nutzen eine leichtgewichtige Alpine-Version der aktuellen Node.js LTS (z.B. 22)
# Alpine-Images sind extrem klein und reduzieren die Angriffsfläche.
FROM node:22-alpine
# Setze das Arbeitsverzeichnis innerhalb des Containers auf /app.
# Alle folgenden Befehle (RUN, CMD, COPY) werden in diesem Ordner ausgeführt.
WORKDIR /app
# Wir kopieren zuerst NUR die package.json (und package-lock.json, falls vorhanden).
# Das ist ein Best-Practice für Docker: Docker speichert diesen Schritt im Cache.
# 'npm install' wird beim erneuten Bauen nur dann ausgeführt, wenn sich an den
# Abhängigkeiten in der package.json etwas geändert hat. Das spart enorm Zeit!
COPY package*.json ./
# Installiere alle Abhängigkeiten (inklusive Dev-Dependencies wie nodemon)
RUN npm install
# HINWEIS: Den restlichen Quellcode (src/) kopieren wir hier im Dev-Dockerfile
# absichtlich nicht mit COPY. Der Code wird stattdessen über die docker-compose.yml
# als Volume gemountet. So greifen deine Änderungen am Root-Server sofort im Container.
# Wir dokumentieren hier, dass der Container auf Port 3000 lauscht.
# Das Backend wird diesen Port später nutzen.
EXPOSE 3000
# Der Standardbefehl, wenn der Container startet. Wir rufen das Script "dev" auf,
# welches wir gleich im nächsten Schritt in der package.json definieren werden.
CMD ["npm", "run", "dev"]