Node.js-App in einem Container betreiben – Migration-Guide
Einführung
Dieser Guide zeigt dir, wie du deine bestehende Node.js-Anwendung im mittwald mStudio von der klassischen Node.js-App-Umgebung in einen Container migrieren kannst.
Vorteile der Container-Migration
- System-Abhängigkeiten: Alle benötigten System-Binaries und -Tools sind verfügbar
 - Reproduzierbare Umgebung: Identische Entwicklungs- und Produktionsumgebung
 - Flexibilität: Freie Wahl des Base-Images und der Konfiguration
 
Voraussetzungen
- Zugriff auf dein mittwald mStudio-Projekt
 - SSH-Zugang zu deiner bestehenden Node.js-App
 - Ein Hosting-Tarif, der Container-Workloads unterstützt
 
Migrationsprozess
Schritt 1: Aktuelle Node.js-App stoppen
Verbinde dich per SSH mit deiner Node.js-App und stoppe die laufende Anwendung:
# Prozesse anzeigen
mittnitectl job list
# Ausgabe:
# The following processes are managed, and controllable:
#   ▶︎ node (running; reason=started; pid=203)
# Node.js-Prozess stoppen
mittnitectl job stop node
# Ausgabe:
# ⏸️  stopping job node
# 🕑 waiting for job node to stop
# 😵 job node stopped
Schritt 2: Anwendungscode vorbereiten
Du hast zwei Möglichkeiten, deinen Anwendungscode für den Container bereitzustellen:
Option A: Code im Projekt duplizieren
Verbinde dich per SSH mit deiner Node.js-App und kopiere das Verzeichnis:
# Beispiel: Kopieren des Anwendungsverzeichnisses
# Hinweis: Pfade müssen an deine tatsächliche Verzeichnisstruktur angepasst werden
cp -r /html/nodejs-app /html/nodejs-container
Option B: Code neu deployen
Übertrage die Dateien auf deine gewohnte Weise, z.B. per Git, CI/CD-Pipeline oder manuell via scp/rsync:
# Beispiel mit rsync
rsync -avz ./my-app/ user@server:/html/nodejs-container/
Schritt 3: Container konfigurieren und starten
- 
Öffne das mStudio und navigiere zu deinem Projekt
 - 
Gehe in die Container-Oberfläche innerhalb deines mStudio-Projekts und wähle "Anlegen". Konfiguriere dann:
Container-Image:
node:24für eine spezifische Versionnode:ltsfür die aktuelle LTS-Version- Oder deine gewünschte Versionsnummer
 
Command:
# Falls Code dupliziert wurde (und yarn install bereits durchgeführt wurde):
sh -c "cd /app && yarn start"
# Falls Code neu deployed wurde (und noch kein yarn install durchgeführt wurde):
sh -c "cd /app && yarn install && yarn start"Volume-Konfiguration:
- Pfad im Projekt: 
/html/nodejs-container(oder dein gewähltes Verzeichnis) - Mount Point im Container: 
/app 
Umgebungsvariablen:
NODE_ENV=production
PORT=3000 # Port deiner WahlPort-Konfiguration:
- Füge den gleichen Port wie bei den Umgebungsvariablen hinzu
 
 
Schritt 4: Domain umstellen
Nach erfolgreichem Start des Containers:
- Navigiere zu den Domain-Einstellungen im mStudio
 - Ändere das Ziel deiner Domain von der Node.js-App zum neuen Container
 
Schritt 5: Verifizierung und Aufräumen
- Teste deine Anwendung über die Domain
 - Überprüfe die Logs des Containers auf Fehler
 - Monitoring: Beobachte die Anwendung für einige Zeit
 
Wenn alles einwandfrei funktioniert:
- Lösche die alte Node.js-App aus deinem Projekt
 - Entferne nicht mehr benötigte Dateien
 
Fehlerbehebung
Container startet nicht
- Überprüfe die Logs im mStudio
 - Stelle sicher, dass alle Umgebungsvariablen korrekt gesetzt sind
 - Verifiziere, dass der Startbefehl korrekt ist
 
Anwendung ist nicht erreichbar
- Überprüfe die Port-Konfiguration
 - Stelle sicher, dass die Anwendung auf dem konfigurierten Port lauscht
 - Kontrolliere die Domain-Einstellungen
 
Abhängigkeiten fehlen
Falls System-Dependencies fehlen, erwäge:
- Ein anderes Base-Image zu verwenden
 - Ein eigenes Dockerfile zu erstellen mit den benötigten Dependencies