ist jetzt verfügbar! Lesen Sie über die neuen Funktionen und Fehlerbehebungen vom November.

Node.js in einem Container

In dieser Anleitung lernen Sie, wie Sie

  • Erstellen einer Dockerfile-Datei für einen Express Node.js-Dienst-Container
  • Erstellen, Ausführen und Überprüfen der Funktionalität des Diensts
  • Debuggen des Diensts, der in einem Container ausgeführt wird

Voraussetzungen

  • Sowohl Docker als auch die VS Code Container Tools-Erweiterung müssen wie in der Übersicht beschrieben installiert sein
  • Node.js Version 10 oder höher

Erstellen einer Express Node.js-Anwendung

  1. Erstellen Sie einen Ordner für das Projekt.

  2. Öffnen Sie eine Entwicklungskommandozeile im Projektordner und erstellen Sie das Projekt

    npx express-generator
    npm install
    

Docker-Dateien zum Projekt hinzufügen

  1. Öffnen Sie den Projektordner in VS Code.

  2. Öffnen Sie die Befehlspalette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) und verwenden Sie den Befehl Containers: Add Docker Files to Workspace...

    Add Dockerfile to a Node.js project

  3. Wählen Sie Node.js aus, wenn Sie nach der Anwendungsplattform gefragt werden.

  4. Wählen Sie die Standarddatei package.json.

  5. Geben Sie 3000 ein, wenn Sie nach dem Anwendungsport gefragt werden.

  6. Wählen Sie entweder Ja oder Nein, wenn Sie gefragt werden, ob Docker Compose-Dateien eingeschlossen werden sollen. Compose wird typischerweise verwendet, wenn mehrere Container gleichzeitig ausgeführt werden.

Die Erweiterung erstellt Dockerfile- und .dockerignore-Dateien. Wenn Sie Docker Compose-Dateien einschließen, werden auch docker-compose.yml und docker-compose.debug.yml generiert. Schließlich erstellt die Erweiterung einen Satz von **VS Code Tasks** in .vscode/tasks.json zum Erstellen und Ausführen des Containers (sowohl im Debug- als auch im Release-Konfigurationsmodus) und eine **Debug-Konfiguration** in .vscode/launch.json zum Debuggen des Diensts innerhalb des Containers.

Hinzufügen einer Umgebungsvariable zum Image

Die Container Tools-Erweiterung hilft Ihnen beim Erstellen von Dockerfiles, indem sie IntelliSense verwendet, um Auto-Vervollständigungen und kontextbezogene Hilfe bereitzustellen. Um diese Funktion in Aktion zu sehen, fügen Sie Ihrer Dienst-Image eine Umgebungsvariable hinzu, indem Sie die folgenden Schritte ausführen

  1. Öffnen Sie die Datei Dockerfile.

  2. Verwenden Sie die ENV-Anweisung, um dem Dienst-Container-Image eine Umgebungsvariable hinzuzufügen.

    Add an environment variable to Docker image

    Beachten Sie, wie die Container Tools-Erweiterung alle verfügbaren Dockerfile-Anweisungen auflistet und die Syntax beschreibt.

    Die Container Tools-Erweiterung verwendet die base-Stufe des Dockerfile, um eine Debug-Version des Container-Images für Ihren Dienst zu erstellen. Platzieren Sie die Umgebungsvariablen-Definition in der base-Stufe, damit diese Variable sowohl in der Debug- als auch in der Release-Version des Container-Images verfügbar ist.

  3. Speichern Sie die Datei Dockerfile.

Lokales Ausführen des Diensts

  1. Öffnen Sie ein Terminal (⌃` (Windows, Linux Ctrl+`)).

  2. Geben Sie npm run start ein, um die Anwendung zu starten

    > express-app@0.0.0 start /Users/user/code/scratch/express-app
    > node ./bin/www
    
  3. Öffnen Sie den Webbrowser und navigieren Sie zu https://:3000. Sie sollten eine Seite sehen, die der folgenden ähnelt

    Application page in browser

  4. Wenn Sie mit dem Testen fertig sind, geben Sie Ctrl+C im Terminal ein.

Erstellen des Dienst-Images

  1. Öffnen Sie die Befehlspalette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) und wählen Sie den Befehl Container Images: Build Image... aus.

  2. Öffnen Sie den Container Explorer und vergewissern Sie sich, dass das neue Image in der Ansicht "Images" sichtbar ist

    Verify Docker image exists

Ausführen des Dienst-Containers

  1. Klicken Sie mit der rechten Maustaste auf das im vorherigen Abschnitt erstellte Image und wählen Sie Run oder Run Interactive. Der Container sollte gestartet werden und Sie sollten ihn in der Container-Ansicht sehen können

    Running service container

  2. Öffnen Sie den Webbrowser und navigieren Sie zu https://:3000. Sie sollten eine Seite sehen, die der folgenden ähnelt

    Application page in browser

  3. Wenn Sie mit dem Testen fertig sind, klicken Sie mit der rechten Maustaste auf den Container in der Container-Ansicht und wählen Sie Stop.

Debuggen im Dienst-Container

Wenn die Container Tools-Erweiterung Dateien zur Anwendung hinzufügt, fügt sie auch eine **VS Code Debugger-Konfiguration** in .vscode/launch.json hinzu, um den Dienst beim Ausführen in einem Container zu debuggen. Die Erweiterung erkennt das Protokoll und den Port, die vom Dienst verwendet werden, und leitet den Browser an den Dienst weiter.

  1. Setzen Sie einen Haltepunkt im get()-Handler für die Route '/' in routes/index.js.

  2. Stellen Sie sicher, dass die Debugger-Konfiguration Containers: Node.js Launch ausgewählt ist.

    Selected debug configuration

  3. Starten Sie das Debugging (verwenden Sie die Taste F5).

    • Das Image für den Dienst wird erstellt.
    • Der Container für den Dienst wird ausgeführt.
    • Der Browser öffnet sich auf dem (zufälligen) Port, der dem Dienst-Container zugeordnet ist.
    • Der Debugger hält am Haltepunkt in index.js an.

    Beachten Sie, dass der Haltepunkt möglicherweise beim ersten Mal verpasst wird, da der Debugger *nach* dem Start der Anwendung angehängt wird; Sie müssen den Browser möglicherweise neu laden, um den Debugger beim zweiten Versuch zu sehen.

    Sie können die Anwendung so konfigurieren, dass sie auf den Anhang des Debuggers wartet, bevor die Ausführung beginnt, indem Sie die Eigenschaft inspectMode auf break in der docker-run: debug-Aufgabe in tasks.json unter dem node-Objekt setzen.

Anzeigen der Anwendungsprotokolle

Sie können die Protokolle in VS Code anzeigen, indem Sie den Befehl View Logs für den Container verwenden

  1. Navigieren Sie zum Container Explorer.

  2. Klicken Sie in der Ansicht **Containers** mit der rechten Maustaste auf Ihren Container und wählen Sie View Logs.

    Screenshot of logs in the terminal

  3. Die Ausgabe wird im Terminal angezeigt.

Nächste Schritte

Sie sind fertig! Da Ihr Container nun bereit ist, möchten Sie vielleicht

© . This site is unofficial and not affiliated with Microsoft.