Heim > Web-Frontend > js-Tutorial > Webentwicklung in Docker-Containern mit Express.js

Webentwicklung in Docker-Containern mit Express.js

Patricia Arquette
Freigeben: 2024-11-07 15:55:03
Original
228 Leute haben es durchsucht

Web Development in Docker Containers Using Express.js

In der heutigen schnelllebigen Entwicklungslandschaft hat sich die Containerisierung zu einem bahnbrechenden Ansatz für Webentwickler entwickelt und bietet Umgebungen, die konsistent, portabel und einfach zu verwalten sind. Docker, die beliebteste Containerisierungsplattform, ermöglicht Entwicklern die einfache Erstellung und Verwaltung von Containern und sorgt so für eine reibungslosere Entwicklung und Bereitstellung. Die Kombination von Docker mit Node.js-Frameworks wie Express.js erhöht die Flexibilität der Webentwicklung und ermöglicht Entwicklern das einfache Erstellen, Testen und Bereitstellen von Webanwendungen.

In diesem Artikel erfahren Sie, wie Sie eine Express.js-Anwendung in einem Docker-Container einrichten und entwickeln, wobei wir uns auf die Vorteile konzentrieren, die sie für die Webentwicklung mit sich bringt.

Warum Docker für die Webentwicklung verwenden?

Docker kapselt die Abhängigkeiten der Anwendung in einem Container, was bedeutet:

  • Konsistenz über Umgebungen hinweg: Docker-Container werden auf jedem System, auf dem Docker installiert ist, auf die gleiche Weise ausgeführt, wodurch Probleme vermieden werden, dass es auf meinem Computer funktioniert.
  • Isolierung: Docker stellt eine isolierte Umgebung für Ihre Anwendung bereit und stellt sicher, dass sie andere Anwendungen nicht beeinträchtigt.
  • Skalierbarkeit und Bereitstellung:Container ermöglichen eine einfache Skalierung und Bereitstellung, sodass Anwendungen einfach horizontal erweitert werden können.

Für die Webentwicklung mit Express.js stellt Docker sicher, dass Node.js und alle anderen Abhängigkeiten (wie Datenbanken oder Bibliotheken) in einer vom Hostsystem getrennten Umgebung korrekt konfiguriert sind.

Einrichten einer Express.js-Anwendung in Docker

Sehen wir uns die Schritte an, die zum Einrichten und Ausführen einer Express.js-Anwendung in einem Docker-Container erforderlich sind.

Schritt 1: Initialisieren Sie eine Express.js-Anwendung

Erstellen Sie zunächst eine grundlegende Express.js-Anwendung. Wenn Sie es nicht global installiert haben, können Sie Folgendes ausführen:

npx express-generator myapp
cd myapp
Nach dem Login kopieren
Nach dem Login kopieren

Dadurch werden eine grundlegende Ordnerstruktur und einige Standarddateien für eine Express.js-App erstellt. Als nächstes installieren Sie alle erforderlichen Abhängigkeiten:

npm install
Nach dem Login kopieren
Nach dem Login kopieren

Schritt 2: Schreiben Sie eine Docker-Datei

Eine Docker-Datei definiert die Umgebung und die Anweisungen, die zum Einrichten und Ausführen Ihrer Anwendung erforderlich sind. Hier ist eine Beispiel-Dockerdatei für eine Express.js-Anwendung:

# Use an official Node.js image as the base
FROM node:latest AS development

# Create and set the working directory inside the container
WORKDIR /app

# Copy package.json and package-lock.json files to the container
COPY package*.json ./

# Install dependencies
RUN npm install

# Copy the entire application code to the container
COPY . .

# Expose the port the app runs on
EXPOSE 3000

# Run the application
CMD ["npm", "start"]
Nach dem Login kopieren
Nach dem Login kopieren

Schritt 3: Erstellen Sie eine Docker Compose-Datei (optional)

Wenn Ihre Anwendung über mehrere Dienste verfügt (z. B. eine Datenbank), hilft docker-compose.yml dabei, diese zu definieren und zu verwalten. Hier ist eine Beispieldatei „docker-compose.yml“:

services:
  app:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - /app/node_modules
    environment:
      - NODE_ENV=development
Nach dem Login kopieren
Nach dem Login kopieren

Schritt 4: Erstellen Sie den Docker-Container und führen Sie ihn aus

Um einen Container für Ihre Anwendung zu erstellen, öffnen Sie ein Terminal im Stammverzeichnis der Anwendung (wo sich die Docker-Datei befindet) und führen Sie Folgendes aus:

npx express-generator myapp
cd myapp
Nach dem Login kopieren
Nach dem Login kopieren

Um den Container dann auszuführen, verwenden Sie:

npm install
Nach dem Login kopieren
Nach dem Login kopieren

Die Anwendung sollte jetzt unter http://localhost:3000 zugänglich sein.

Schritt 5: Entwickeln mit Live Reloading

Standardmäßig unterstützt Docker kein Live-Neuladen (bei dem Änderungen im Code automatisch berücksichtigt werden). Sie können dies jedoch mit Hilfe von nodemon erreichen, einem Tool, das auf Dateiänderungen überwacht und den Server automatisch neu startet.

Installieren Sie zunächst Nodemon als Entwicklungsabhängigkeit:

# Use an official Node.js image as the base
FROM node:latest AS development

# Create and set the working directory inside the container
WORKDIR /app

# Copy package.json and package-lock.json files to the container
COPY package*.json ./

# Install dependencies
RUN npm install

# Copy the entire application code to the container
COPY . .

# Expose the port the app runs on
EXPOSE 3000

# Run the application
CMD ["npm", "start"]
Nach dem Login kopieren
Nach dem Login kopieren

Aktualisieren Sie dann die Docker-Datei, um NODE_ENV auf Entwicklung zu setzen, und aktualisieren Sie den Startbefehl:

services:
  app:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - /app/node_modules
    environment:
      - NODE_ENV=development
Nach dem Login kopieren
Nach dem Login kopieren

Oder wenn Sie docker-compose.yml verwenden, können Sie den Befehl direkt darin angeben:

docker build -t express-app .
Nach dem Login kopieren

Dieses Setup ermöglicht ein Live-Nachladen, was während der Entwicklung von großem Vorteil ist, da es Zeit spart und die Produktivität steigert.

Schritt 6: Abhängigkeiten mit Docker-Volumes verwalten

Um Probleme zu vermeiden, bei denen Abhängigkeiten jedes Mal neu erstellt werden, verwenden Sie Docker-Volumes, um den Quellcode des lokalen Dateisystems im Container bereitzustellen.

In docker-compose.yml:

docker run -p 3000:3000 express-app
Nach dem Login kopieren

Diese Konfiguration synchronisiert Ihren Code zwischen dem Host und dem Container, überschreibt jedoch nicht den Ordner „node_modules“.

Schritt 7: Debuggen in Docker

Docker bietet verschiedene Optionen zum Debuggen. Sie können Ihrer Anwendung DEBUG-Flags hinzufügen, um die Ausführlichkeit der Protokollierung zu erhöhen, oder Dockers eigene Protokollierungs- und Überwachungsbefehle verwenden:

npm install --save-dev nodemon
Nach dem Login kopieren

Schritt 8: Dockerisierung für die Produktion

Beim Übergang zur Produktion gibt es zusätzliche Schritte zur Optimierung, wie zum Beispiel:

  • Verwendung mehrstufiger Builds zur Reduzierung der Bildgröße.
  • Umgebungsspezifische Konfigurationen einrichten.
  • Hinzufügen von Sicherheitsmaßnahmen, z. B. Scannen nach Schwachstellen. Ein Beispiel für eine mehrstufige Build-Docker-Datei:
# Install nodemon globally
RUN npm install -g nodemon

# Run the application using nodemon
CMD ["nodemon", "bin/www"]
Nach dem Login kopieren

Vorteile der Entwicklung mit Express.js in Docker
Die Entwicklung einer Express.js-Anwendung in Docker hat erhebliche Vorteile:

  • Plattformkonsistenz: Der Docker-Container standardisiert Ihre Umgebung über alle Phasen hinweg, von der Entwicklung bis zur Produktion.
  • Vereinfachte Abhängigkeiten: Durch die Kapselung von Abhängigkeiten eliminieren Sie komplexe Installationen auf Ihrem lokalen Computer. Schnelle Skalierung: Mit Containern können Sie Anwendungen horizontal skalieren, indem Sie zusätzliche Instanzen bereitstellen. Mühelose Zusammenarbeit: Durch die gemeinsame Nutzung einer Docker-Datei oder docker-compose.yml wird sichergestellt, dass Teamkollegen in der exakten Umgebung arbeiten. ## Best Practices
  • Docker-Images klein halten: Verwenden Sie mehrstufige Builds, um die Image-Größe zu minimieren und die Leistung zu verbessern. Verwenden Sie Umgebungsvariablen für die Konfiguration: Vermeiden Sie hartcodierte Konfigurationen, um die Containerumgebung unabhängig zu halten.
  • Volumes nutzen: Nutzen Sie Docker-Volumes zum Speichern von Daten oder zum Synchronisieren von Code in der Entwicklung.
  • Automatisieren mit CI/CD: Integrieren Sie Docker in CI/CD-Pipelines für eine konsistente und automatisierte Bereitstellung in allen Umgebungen. ## Abschluss Die Dockerisierung Ihrer Express.js-Anwendung bietet eine skalierbare und robuste Lösung für die Webentwicklung. Durch die Verwendung von Docker erhalten Sie eine bessere Kontrolle über Umgebungen, vereinfachen das Abhängigkeitsmanagement und verbessern die Zusammenarbeit – alles Faktoren, die für die moderne Webentwicklung von entscheidender Bedeutung sind. Egal, ob Sie an einer einfachen Anwendung oder einem komplexen System mit mehreren Diensten arbeiten, Docker bietet Tools, die Ihren Arbeitsablauf optimieren und Ihr Projekt für den Erfolg in der Produktion vorbereiten können.

Beginnen Sie noch heute mit Docker und Express.js, um zu sehen, wie es Ihre Entwicklungserfahrung verändern kann!

Das obige ist der detaillierte Inhalt vonWebentwicklung in Docker-Containern mit Express.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage