# Node.js LTS Version FROM node:20-alpine # Arbeitsverzeichnis WORKDIR /app # Build-Abhängigkeiten für better-sqlite3 und Curl für Health-Check installieren RUN apk add --no-cache curl python3 make g++ # Git für Repository-Operationen installieren (bleibt im Image) RUN apk add --no-cache git # Git Safe Directory für gemountete Windows-Verzeichnisse konfigurieren (system-weit für alle User) RUN git config --system --add safe.directory '*' # Git-Benutzer konfigurieren (für Commits) RUN git config --system user.email "taskmate@local" && \ git config --system user.name "TaskMate" # Package-Dateien kopieren COPY backend/package*.json ./ # Abhängigkeiten installieren RUN npm ci --only=production # Build-Abhängigkeiten entfernen (kleineres Image) RUN apk del python3 make g++ # Backend-Code kopieren COPY backend/ ./ # Frontend kopieren COPY frontend/ ./public/ # Ordner erstellen RUN mkdir -p /app/data /app/backups /app/logs /app/uploads # Berechtigungen setzen RUN chown -R node:node /app # Als non-root User ausführen USER node # Port freigeben EXPOSE 3000 # Server starten CMD ["node", "server.js"]