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

Container Tools-Erweiterung anpassen

Die Container Tools-Erweiterung enthält mehrere Visual Studio Code-Tasks zur Steuerung des Verhaltens von Docker build und run und bildet die Grundlage für den Containerstart zum Debuggen.

Die Tasks ermöglichen eine weitgehende Kontrolle und Anpassung. Die endgültige Konfiguration ist eine Kombination aus allgemeinen Standardwerten, plattformspezifischen Standardwerten (wie Node.js, Python oder .NET) und Benutzereingaben. Benutzereingaben haben Vorrang, wenn sie mit Standardwerten kollidieren.

Alle gängigen Funktionen von Visual Studio Code-Tasks (z. B. Gruppierung von Tasks in zusammengesetzten Tasks) werden von den Container Tools-Erweiterungs-Tasks unterstützt. Weitere Informationen zu gängigen Taskfunktionen und -eigenschaften finden Sie in der Dokumentation zu den benutzerdefinierten Tasks von Visual Studio Code.

Docker Build-Task

Der Task docker-build erstellt Images mithilfe der Docker-Befehlszeile (CLI). Der Task kann eigenständig oder als Teil einer Taskkette zum Ausführen und/oder Debuggen einer Anwendung in einem Container verwendet werden.

Die wichtigsten Konfigurationseinstellungen für den Task docker-build sind dockerBuild und platform

  • Das Objekt dockerBuild gibt Parameter für den Docker-Build-Befehl an. Die von diesem Objekt angegebenen Werte werden direkt auf die Docker-Build-CLI-Aufrufung angewendet.
  • Die Eigenschaft platform ist ein Hinweis, der beeinflusst, wie der Task docker-build die Docker-Build-Standardwerte bestimmt.

Siehe Eigenschaftenreferenz für die vollständige Liste aller Task-Eigenschaften.

Plattformunterstützung

Während der Task docker-build in tasks.json zum Erstellen beliebiger Images verwendet werden kann, verfügt die Erweiterung über explizite Unterstützung (und vereinfachte Konfiguration) für Node.js, Python und .NET Core.

Node.js (docker-build)

Minimale Konfiguration mit Standardwerten

Ein auf Node.js basierendes Image ohne spezifische Plattformoptionen kann einfach die Eigenschaft platform auf node setzen

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Build Node Image",
      "type": "docker-build",
      "platform": "node"
    }
  ]
}

Plattformstandardwerte

Für auf Node.js basierende Images leitet der Task docker-build die folgenden Optionen ab

Eigenschaft Abgeleiteter Wert
dockerBuild.context Das gleiche Verzeichnis, in dem sich package.json befindet.
dockerBuild.dockerfile Die Datei Dockerfile im selben Verzeichnis wie package.json.
dockerBuild.tag Die Eigenschaft name der Anwendung in package.json (falls definiert), andernfalls der Basisname des Ordners, in dem sich package.json befindet.
dockerBuild.pull Standardmäßig true, um neue Basisimages vor dem Builden herunterzuladen.

Python (docker-build)

Minimale Konfiguration mit Standardwerten

Ein auf Python basierendes Image ohne spezifische Plattformoptionen kann einfach die Eigenschaft platform auf python setzen

{
  "tasks": [
    {
      "type": "docker-build",
      "label": "docker-build",
      "platform": "python"
    }
  ]
}

Plattformstandardwerte

Für auf Python basierende Images leitet der Task docker-build die folgenden Optionen ab

Eigenschaft Abgeleiteter Wert
dockerBuild.context Der Standardkontext ist der Arbeitsbereichsordner.
dockerBuild.dockerfile Der Standard-Dockerfile-Pfad befindet sich im Stammverzeichnis des Arbeitsbereichsordners.
dockerBuild.tag Der Basisname des Stamm-Arbeitsbereichsordners.
dockerBuild.pull Standardmäßig true, um neue Basisimages vor dem Builden herunterzuladen.

.NET (docker-build)

Minimale Konfiguration mit Standardwerten

Beim Erstellen eines auf .NET basierenden Images können Sie die Eigenschaft platform weglassen und stattdessen das Objekt netCore festlegen (platform wird implizit auf netcore gesetzt, wenn das Objekt netCore vorhanden ist). Beachten Sie, dass appProject eine erforderliche Eigenschaft ist

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Build Node Image",
      "type": "docker-build",
      "netCore": {
        "appProject": "${workspaceFolder}/project.csproj"
      }
    }
  ]
}

Plattformstandardwerte

Für auf .NET basierende Images leitet der Task docker-build die folgenden Optionen ab

Eigenschaft Abgeleiteter Wert
dockerBuild.context Der Stamm-Arbeitsbereichsordner.
dockerBuild.dockerfile Die Datei Dockerfile im Stamm-Arbeitsbereichsordner.
dockerBuild.tag Der Basisname des Stamm-Arbeitsbereichsordners.
dockerBuild.pull Standardmäßig true, um neue Basisimages vor dem Builden herunterzuladen.

Build-Task-Referenz

Hier sind alle Eigenschaften aufgeführt, die zur Konfiguration des Tasks docker-build verfügbar sind. Alle Eigenschaften sind optional, sofern nicht anders angegeben.

Eigenschaft Beschreibung
dockerBuild Optionen zur Steuerung des ausgeführten Befehls docker build (siehe unten).
Erforderlich, es sei denn, platform ist gesetzt.
platform Bestimmt die Plattform: .NET (netcore) oder Node.js (node) und Standardeinstellungen für den Befehl docker build.
node Bestimmt plattformspezifische Optionen für Node.js-Projekte (siehe unten).
python Für Python gibt es keine Objekteigenschaften im Task docker-build.
netCore Bestimmt plattformspezifische Optionen für .NET-Projekte (siehe unten).

Eigenschaften des dockerBuild-Objekts

Eigenschaft Beschreibung docker build CLI-Entsprechung
context Der Pfad zum Build-Kontext.
Erforderlich, es sei denn, er wird von der Plattform abgeleitet.
PATH
dockerfile Der Pfad zur Dockerfile.
Erforderlich, es sei denn, er wird von der Plattform abgeleitet.
-f oder --file
tag Das für das Image angewendete Tag.
Erforderlich, es sei denn, er wird von der Plattform abgeleitet.
-t oder --tag
buildArgs Build-Argumente, die auf der Befehlszeile angewendet werden. Dies ist eine Liste von Schlüssel-Wert-Paaren. --build-arg
labels Dem Image hinzugefügte Labels. Dies ist eine Liste von Schlüssel-Wert-Paaren (ein JSON-Objekt).
Zusätzlich zu den hier angegebenen Labels wird dem Image ein Label com.microsoft.created-by mit dem Wert visual-studio-code hinzugefügt. Dieses Verhalten kann durch Setzen der Eigenschaft includeDefaults des Objekts labels auf false deaktiviert werden.
--label
target Das Ziel in der Dockerfile, zu dem gebaut werden soll. --target
pull Ob neue Basisimages vor dem Builden heruntergeladen werden sollen. --pull
customOptions Zusätzliche Parameter, die vor dem Kontextargument hinzugefügt werden sollen. Es wird kein Versuch unternommen, Konflikte mit anderen Optionen aufzulösen oder diese Option zu validieren. (any)

Eigenschaften des Node-Objekts (Task docker-build)

Eigenschaft Beschreibung Standard
package Der Pfad zur Datei package.json, die mit der Dockerfile und dem Task docker-build verknüpft ist. Die Datei package.json im Stamm-Arbeitsbereichsordner.

Eigenschaften des netCore-Objekts (Task docker-build)

Eigenschaft Beschreibung
appProject Die .NET-Projektdatei (.csproj, .fsproj, etc.), die mit der Dockerfile und dem Task docker-build verknüpft ist.
Immer erforderlich.

Docker Run-Task

Der Task docker-run in tasks.json erstellt und startet einen Container mithilfe der Docker-Befehlszeile (CLI). Der Task kann eigenständig oder als Teil einer Taskkette zum Debuggen einer Anwendung in einem Container verwendet werden.

Die wichtigsten Konfigurationseinstellungen für den Task docker-run sind dockerRun und platform

  • Das Objekt dockerRun gibt Parameter für den Docker-Run-Befehl an. Die von diesem Objekt angegebenen Werte werden direkt auf die Docker-Run-CLI-Aufrufung angewendet.
  • Die Eigenschaft platform ist ein Hinweis, der beeinflusst, wie der Task docker-run die Docker-Run-Standardwerte bestimmt.

Siehe Eigenschaftenreferenz für die vollständige Liste aller Task-Eigenschaften.

Docker Run-Plattformunterstützung

Während der Task docker-run zum Ausführen beliebiger Docker-Images verwendet werden kann, verfügt die Erweiterung über explizite Unterstützung (und vereinfachte Konfiguration) für Node.js, Python und .NET.

Node.js (docker-run)

Minimale Konfiguration mit Standardwerten

Ein auf Node.js basierendes Image ohne spezifische Plattformoptionen kann einfach die Eigenschaft platform auf node setzen.

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Run Node Image",
      "node": "docker-run",
      "platform": "node"
    }
  ]
}

Plattformstandardwerte

Für auf Node.js basierende Images leitet der Task docker-run die folgenden Optionen ab

Eigenschaft Abgeleiteter Wert
dockerRun.command Generiert aus dem npm start-Skript in package.json (falls vorhanden), andernfalls generiert aus der main-Eigenschaft in package.json.
dockerRun.containerName Abgeleitet vom Anwendungs-Paketnamen.
dockerRun.image Das Tag eines abhängigen docker-build-Tasks (falls vorhanden) oder abgeleitet vom Anwendungs-Paketnamen, der selbst von der name-Eigenschaft in package.json oder dem Basisnamen des Ordners, in dem er sich befindet, abgeleitet wird.

Python (docker-run)

Beim Erstellen eines auf Python basierenden Images können Sie die Eigenschaft platform weglassen und stattdessen das Objekt python festlegen (platform wird implizit auf python gesetzt, wenn das Objekt python vorhanden ist)

Minimale Konfiguration für Django-Apps

{
  "type": "docker-run",
  "label": "docker-run: debug",
  "dependsOn": ["docker-build"],
  "python": {
    "args": ["runserver", "0.0.0.0:8000", "--nothreading", "--noreload"],
    "file": "path_to/manage.py"
  }
}

Minimale Konfiguration für Flask-Apps

{
  "type": "docker-run",
  "label": "docker-run: debug",
  "dependsOn": ["docker-build"],
  "dockerRun": {
    "env": {
      "FLASK_APP": "path_to/flask_entry_point.py"
    }
  },
  "python": {
    "args": ["run", "--no-debugger", "--no-reload", "--host", "0.0.0.0", "--port", "5000"],
    "module": "flask"
  }
}

Minimale Konfiguration für allgemeine Apps

{
  "type": "docker-run",
  "label": "docker-run: debug",
  "dependsOn": ["docker-build"],
  "python": {
    "file": "path_to/app_entry_point.py"
  }
}

Plattformstandardwerte

Für auf Python basierende Images leitet der Task docker-run die folgenden Optionen ab

Eigenschaft Abgeleiteter Wert
dockerRun.command Generiert durch das Python-Objekt und wird vom Python Debugger aufgerufen.
dockerRun.containerName Abgeleitet vom Basisnamen des Stamm-Arbeitsbereichsordners.
dockerRun.image Das Tag eines abhängigen Docker-Build-Tasks (falls vorhanden) oder abgeleitet vom Basisnamen des Stamm-Arbeitsbereichsordners.

.NET (docker-run)

Minimale Konfiguration mit Standardwerten

Beim Erstellen eines auf .NET basierenden Images können Sie die Eigenschaft platform weglassen und stattdessen das Objekt netCore festlegen (platform wird implizit auf netcore gesetzt, wenn das Objekt netCore vorhanden ist). Beachten Sie, dass appProject eine erforderliche Eigenschaft ist

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Run .NET Core Image",
      "type": "docker-run",
      "netCore": {
        "appProject": "${workspaceFolder}/project.csproj"
      }
    }
  ]
}

Plattformstandardwerte

Für auf .NET basierende Images leitet der Task docker-run die folgenden Optionen ab

Eigenschaft Abgeleiteter Wert
dockerRun.containerName Abgeleitet vom Basisnamen des Stamm-Arbeitsbereichsordners.
dockerRun.env Fügt die folgenden Umgebungsvariablen hinzu, wie erforderlich: ASPNETCORE_ENVIRONMENT, ASPNETCORE_URLS und DOTNET_USE_POLLING_FILE_WATCHER.
dockerRun.image Das Tag eines abhängigen docker-build-Tasks (falls vorhanden) oder abgeleitet vom Basisnamen des Stamm-Arbeitsbereichsordners.
dockerRun.os Linux
dockerRun.volumes Fügt die folgenden Volumes hinzu, wie erforderlich: lokaler Anwendungsordner, Quellordner, Debuggerordner, NuGet-Paketordner und NuGet-Fallbackordner.

Run-Task-Referenz

Hier sind alle Eigenschaften aufgeführt, die zur Konfiguration des Tasks docker-run verfügbar sind. Alle Eigenschaften sind optional, sofern nicht anders angegeben.

Eigenschaft Beschreibung
dockerRun Optionen zur Steuerung des ausgeführten Befehls docker run (siehe unten).
Erforderlich, es sei denn, platform ist gesetzt.
platform Bestimmt die Plattform: .NET (netcore) oder Node.js (node) und Standardeinstellungen für den Befehl docker run.
node Für Node.js-Projekte steuert dies verschiedene Optionen (siehe unten).
python Für Python-Projekte steuert dies verschiedene Optionen (siehe unten).
netCore Für .NET-Projekte steuert dies verschiedene Optionen (siehe unten).

Eigenschaften des dockerRun-Objekts

Eigenschaft Beschreibung CLI-Entsprechung
image Der Name (Tag) des auszuführenden Images.
Erforderlich, es sei denn, er wird von der Plattform abgeleitet.
IMAGE
command Der auszuführende Befehl beim Starten des Containers.
Erforderlich, es sei denn, er wird von der Plattform abgeleitet.
COMMAND [ARG...]
containerName Der Name, der dem gestarteten Container gegeben wird.
Erforderlich, es sei denn, er wird von der Plattform abgeleitet.
--name
env Im Container gesetzte Umgebungsvariablen. Dies ist eine Liste von Schlüssel-Wert-Paaren. -e oder --env
envFiles Dies ist eine Liste von .env-Dateien. --env-file
labels Dem gestarteten Container gegebene Labels. Dies ist eine Liste von Schlüssel-Wert-Paaren. --label
network Der Name des Netzwerks, mit dem der Container verbunden wird. --network
networkAlias Der netzwerkbezogene Alias für den gestarteten Container. --network-alias
os Standard ist Linux, die andere Option ist Windows. Das verwendete Containerbetriebssystem. N/A
ports Die zu veröffentlichenden (zu mappenden) Ports vom Container zum Host. Dies ist eine Liste von Objekten (siehe unten). -p oder --publish
portsPublishAll Ob alle vom Docker-Image exponierten Ports veröffentlicht werden sollen. Standard ist true, wenn keine Ports explizit veröffentlicht werden. -P
extraHosts Die Hosts, die für die DNS-Auflösung dem Container hinzugefügt werden sollen. Dies ist eine Liste von Objekten (siehe unten). --add-host
volumes Die Volumes, die in den gestarteten Container gemappt werden sollen. Dies ist eine Liste von Objekten (siehe unten). -v oder --volume
remove Ob der Container nach dem Stoppen entfernt werden soll. --rm
customOptions Zusätzliche Parameter, die vor dem Image-Argument hinzugefügt werden sollen. Es wird kein Versuch unternommen, Konflikte mit anderen Optionen aufzulösen oder diese Option zu validieren. (any)

Eigenschaften des Ports-Objekts

Eigenschaft Beschreibung Standard
containerPort Die Portnummer, die auf dem Container gebunden ist.
Erforderlich.
hostPort Die Portnummer, die auf dem Host gebunden ist. (zufällig von Docker ausgewählt)
protocol Das Protokoll für die Bindung (tcp oder udp). tcp

Eigenschaften des extraHosts-Objekts

Eigenschaft Beschreibung
hostname Der Hostname für die DNS-Auflösung.
Erforderlich.
ip Die IP-Adresse, die dem obigen Hostnamen zugeordnet ist.
Erforderlich.

Eigenschaften des Volumes-Objekts

Eigenschaft Beschreibung Standard
localPath Der Pfad auf dem lokalen Computer, der gemappt wird.
Erforderlich.
containerPath Der Pfad im Container, dem der lokale Pfad zugeordnet wird.
Erforderlich.
permissions Berechtigungen, die der Container für den gemappten Pfad hat. Kann ro (schreibgeschützt) oder rw (lese-/schreibgeschützt) sein. Containerabhängig.

Eigenschaften des Node-Objekts (Task docker-run)

Eigenschaft Beschreibung Standard
package Der Pfad zur Datei package.json, die mit dem Task docker-run verknüpft ist. Die Datei package.json im Stamm-Arbeitsbereichsordner.
enableDebugging Ob das Debugging innerhalb des Containers aktiviert werden soll. false
inspectMode Definiert die anfängliche Interaktion zwischen der Anwendung und dem Debugger (default oder break).
Der Wert default ermöglicht die Ausführung der Anwendung, bis der Debugger angehängt ist.
Der Wert break verhindert die Ausführung der Anwendung, bis der Debugger angehängt ist.
default
inspectPort Der Port, auf dem das Debugging erfolgen soll. 9229

Eigenschaften des Python-Objekts (Task docker-run)

Eigenschaft Beschreibung Standard
args Argumente, die an die Python-App übergeben werden. Plattformabhängig. Standardwerte des oben gezeigten Gerüsts angezeigt
debugPort Der Port, auf dem der Debugger lauschen wird. 5678
wait Ob auf das Anhängen des Debuggers gewartet werden soll. true
module Das auszuführende Python-Modul (nur Modul oder Datei sollte ausgewählt werden).
file Die auszuführende Python-Datei (nur Modul oder Datei sollte ausgewählt werden).

Eigenschaften des netCore-Objekts (Task docker-run)

Eigenschaft Beschreibung
appProject Die .NET-Projektdatei (.csproj, .fsproj, etc.), die mit dem Task docker-run verknüpft ist.
Erforderlich.
configureSsl Ob ASP.NET Core SSL-Zertifikate und andere Einstellungen konfiguriert werden sollen, um SSL auf dem Dienst im Container zu aktivieren.
enableDebugging Ob der gestartete Container für das Debugging aktiviert werden soll. Dies leitet zusätzliche Volume-Mappings und andere für das Debugging notwendige Optionen ab.

Docker Compose-Task

Der Task docker-compose in tasks.json erstellt und startet Container mithilfe der Docker Compose-Befehlszeile (CLI). Der Task kann eigenständig oder als Teil einer Taskkette zum Debuggen einer Anwendung in einem Container verwendet werden.

Die wichtigste Konfigurationseinstellung für den Task docker-compose ist dockerCompose

  • Das Objekt dockerCompose gibt Parameter für den Docker Compose-Befehl an. Die von diesem Objekt angegebenen Werte werden direkt auf die Docker Compose-CLI-Aufrufung angewendet.

Siehe Eigenschaftenreferenz für die vollständige Liste aller Task-Eigenschaften.

Beispielkonfiguration

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Run docker-compose up",
      "type": "docker-compose",
      "dockerCompose": {
        "up": {
          "detached": true,
          "build": true,
          "services": ["myservice"]
        },
        "files": [
          "${workspaceFolder}/docker-compose.yml",
          "${workspaceFolder}/docker-compose.debug.yml"
        ]
      }
    }
  ]
}

Compose-Task-Referenz

Hier sind alle Eigenschaften aufgeführt, die zur Konfiguration des Tasks docker-compose verfügbar sind. Alle Eigenschaften sind optional, sofern nicht anders angegeben.

Eigenschaft Beschreibung
dockerCompose Optionen zur Steuerung des ausgeführten Befehls docker-compose (siehe unten).
Erforderlich.

Eigenschaften des dockerCompose-Objekts

Eigenschaft Beschreibung CLI-Entsprechung
up Führt einen Befehl docker-compose up aus.
Entweder dieser oder down muss angegeben werden, aber nicht beide.
docker-compose up
down Führt einen Befehl docker-compose down aus.
Entweder dieser oder up muss angegeben werden, aber nicht beide.
docker-compose down
files Die Liste der Docker Compose YAML-Dateien, die im Befehl docker-compose verwendet werden sollen. Wenn nicht angegeben, sucht die Docker Compose CLI nach docker-compose.yml und docker-compose.override.yml. -f <file>
envFile Datei mit Umgebungsvariablen, die gelesen und auf die Container angewendet werden. --env-file <file>
projectName Alternativer Projektname, der bei der Benennung und Kennzeichnung von Docker-Objekten verwendet wird. Bei Verwendung eines alternativen Projektnamens beim Compose-Up muss derselbe Projektname beim Compose-Down angegeben werden. --project-name <name>

Eigenschaften des up-Objekts

Eigenschaft Beschreibung CLI-Entsprechung Standard
detached Ob im getrennten Modus ausgeführt werden soll. -d true
build Ob vor dem Ausführen gebaut werden soll. --build true
scale Anzahl der auszuführenden Instanzen jedes Dienstes. Dies ist eine Liste von Schlüssel-Wert-Paaren. --scale SERVICE=NUM
services Eine Teilmenge der zu startenden Dienste. Kann nicht mit profiles kombiniert werden. [SERVICE...] (alle)
profiles Eine Teilmenge der zu startenden Profile. Kann nicht mit services kombiniert werden. --profile <profile> (alle)
customOptions Zusätzliche Parameter, die nach dem Argument up hinzugefügt werden sollen. Es wird kein Versuch unternommen, Konflikte mit anderen Optionen aufzulösen oder diese Option zu validieren. (any)

Eigenschaften des down-Objekts

Eigenschaft Beschreibung CLI-Entsprechung Standard
removeImages Ob Images entfernt werden sollen und welche. all entfernt alle von Diensten verwendeten Images, local entfernt nur Images ohne benutzerdefiniertes Tag. Wenn dies nicht gesetzt ist, werden keine Images entfernt. --rmi
removeVolumes Ob benannte Volumes entfernt werden sollen. -v false
customOptions Zusätzliche Parameter, die nach dem Argument down hinzugefügt werden sollen. Es wird kein Versuch unternommen, Konflikte mit anderen Optionen aufzulösen oder diese Option zu validieren. (any)

Befehlseinstellungen

Die Container Tools-Erweiterung führt eine Reihe von Docker-CLI-Befehlen aus, wenn Sie verschiedene Operationen durchführen, wie z. B. Images erstellen, Container starten, an Container anhängen und Containerprotokolle anzeigen. Einige dieser Befehle haben eine große Anzahl optionaler Argumente, die oft in sehr spezifischen Szenarien verwendet werden. Als Alternative zu den oben genannten Visual Studio Code-Tasks können mehrere Befehle angepasst werden, wenn keine Tasks verwendet werden.

Zum Beispiel ermöglichen die Token ${serviceList} und ${profileList} im Befehl Compose Up das einfache Starten einer Teilmenge der Dienste in Ihrer(n) Docker Compose YAML-Datei(en).

Für jeden dieser anpassbaren Docker-Befehle ist eine Konfigurationseinstellung verfügbar, um die Vorlage für die Ausführung festzulegen. Alternativ können Sie mehrere Vorlagen definieren, optional mit einem regulären Ausdruck, der, wenn er übereinstimmt, den Kontext angibt, in dem eine Vorlage verwendet werden soll. Die Vorlagen unterstützen einige Token ähnlich wie launch.json und tasks.json, z. B. ${workspaceFolder}.

Schema der Einstellungs-JSON

Sie haben zwei Optionen zur Konfiguration jeder der Vorlagen (unten aufgeführt). Die erste Option ist eine einzelne Vorlage, die das Standardverhalten überschreibt.

{
  "containers.commands.build": "docker build --rm -f \"${dockerfile}\" -t ${tag} \"${context}\""
}

Die zweite Option sind mehrere Vorlagen, die basierend auf dem regulären Ausdruck match sowie Benutzereingaben ausgewählt werden.

Zum Beispiel werden im folgenden Beispiel drei Vorlagen gezeigt.

{
  "containers.commands.build": [
    {
      "label": "Default build command",
      "template": "docker build --rm -f \"${dockerfile}\" -t ${tag} \"${context}\""
    },
    {
      "label": "Alpine-specific build command",
      "template": "docker build -p 1234:1234 -f \"${dockerfile}\" -t ${tag} \"${context}\"",
      "match": "alpine"
    }
  ]
}

Auswahlverhalten

Die ausgewählte Befehlsvorlage wird basierend auf den folgenden Regeln ausgewählt.

  1. Wenn keine Einstellung konfiguriert ist, wird die Standard-Befehlsvorlage gewählt.
  2. Wenn nur eine Vorlage konfiguriert ist (das erste Beispiel oben), wird diese Vorlage gewählt.
  3. Wenn mehrere Vorlagen konfiguriert sind.
    1. Eingeschränkte Vorlagen werden geprüft. Eine eingeschränkte Vorlage hat ein match. Der reguläre Ausdruck match wird mit kontextbezogenen Hinweisen verglichen – z. B. Image-Name, Container-Name usw.
    2. Wenn mehrere eingeschränkte Vorlagen zutreffen, wird der Benutzer zur Auswahl aufgefordert. Wenn nur eine zutrifft, wird der Benutzer nicht aufgefordert.
    3. Wenn keine zutreffenden eingeschränkten Vorlagen vorhanden sind, werden nicht eingeschränkte Vorlagen geprüft. Eine nicht eingeschränkte Vorlage hat kein match und ist daher immer zutreffend.
    4. Wenn mehrere nicht eingeschränkte Vorlagen zutreffen, wird der Benutzer zur Auswahl aufgefordert. Wenn nur eine zutrifft, wird der Benutzer nicht aufgefordert.

Docker Build

Konfigurationseinstellung Standardwert
docker.commands.build ${containerCommand} build --rm -f "${dockerfile}" -t ${tag} "${context}"

Unterstützte Token

Token Beschreibung
${containerCommand} Der CLI-Befehl / die ausführbare Datei, die zum Ausführen von Containerbefehlen verwendet wird.
${dockerfile} Der Arbeitsbereichs-relative Pfad der ausgewählten Dockerfile.
${tag} Der vom Benutzer bei Aufruf des Build-Befehls eingegebene/bestätigte Wert. Wenn zuvor gebaut, wird standardmäßig der zuvor eingegebene Wert für diese Dockerfile verwendet.
${context} Wenn gesetzt, der Wert der Konfigurationseinstellung containers.imageBuildContextPath. Andernfalls der Arbeitsbereichs-relative Ordner, in dem sich die Dockerfile befindet.

Hinweis: Wenn die Einstellung containers.commands.build das Token ${tag} nicht enthält, wird der Benutzer nicht aufgefordert, ein Tag einzugeben/zu bestätigen.

Hinweis: Der reguläre Ausdruck match wird mit dem ausgewählten Dockerfile-Namen und dem Namen des Arbeitsbereichsordners verglichen.

Docker Run

Konfigurationseinstellung Standardwert
containers.commands.run ${containerCommand} run --rm -d ${exposedPorts} ${tag}
containers.commands.runInteractive ${containerCommand} run --rm -it ${exposedPorts} ${tag}

Unterstützte Token

Token Beschreibung
${containerCommand} Der CLI-Befehl / die ausführbare Datei, die zum Ausführen von Containerbefehlen verwendet wird.
${exposedPorts} Generiert aus der Liste der im Image exponierten Ports (letztendlich aus der Dockerfile), wobei jeder exponierte Port demselben Port auf dem lokalen Computer zugeordnet wird. Zum Beispiel würde "EXPOSE 5000 5001" "-p 5000:5000 -p 5001:5001" generieren.
${tag} Das vollständige Tag des ausgewählten Images.

Hinweis: Der reguläre Ausdruck match wird mit dem vollständigen Tag des ausgewählten Images verglichen.

Container Attach

Konfigurationseinstellung Standardwert
containers.commands.attach ${containerCommand} exec -it ${containerId} ${shellCommand}

Unterstützte Token

Token Beschreibung
${containerCommand} Der CLI-Befehl / die ausführbare Datei, die zum Ausführen von Containerbefehlen verwendet wird.
${containerId} Die ID des Containers, an den angehängt werden soll.
${shellCommand} Wenn bash im Container vorhanden ist, wird es hier ersetzt, andernfalls sh. In Windows-Containern wird immer cmd verwendet.

Hinweis: Der reguläre Ausdruck match wird mit dem Containernamen und dem vollständigen Tag des Container-Images verglichen.

Container Logs

Konfigurationseinstellung Standardwert
containers.commands.logs ${containerCommand} logs -f ${containerId}

Unterstützte Token

Token Beschreibung
${containerCommand} Der CLI-Befehl / die ausführbare Datei, die zum Ausführen von Containerbefehlen verwendet wird.
${containerId} Die ID des Containers, dessen Protokolle angezeigt werden sollen.

Hinweis: Der reguläre Ausdruck match wird mit dem Containernamen und dem vollständigen Tag des Container-Images verglichen.

Docker Compose Up

Konfigurationseinstellung Standardwert
containers.commands.composeUp ${composeCommand} ${configurationFile} up ${detached} ${build}

Unterstützte Token

Token Beschreibung
${configurationFile} Gesetzt auf -f plus den Arbeitsbereichs-relativen Pfad zur ausgewählten Docker Compose YAML-Datei.
${detached} Gesetzt auf -d, wenn die Konfigurationseinstellung containers.composeDetached auf true gesetzt ist. Andernfalls gesetzt auf "".
${build} Gesetzt auf --build, wenn die Konfigurationseinstellung containers.composeBuild auf true gesetzt ist. Andernfalls gesetzt auf "".
${serviceList} Wenn angegeben, fordert zur Auswahl einer Teilmenge der zu startenden Dienste auf, wenn der Befehl ausgeführt wird.
${profileList} Wenn angegeben und die Docker Compose YAML-Datei Profile enthält, fordert zur Auswahl einer Teilmenge der zu startenden Profile auf, wenn der Befehl ausgeführt wird.
${composeCommand} Gesetzt auf den Wert der Einstellung containers.composeCommand, falls diese gesetzt ist, andernfalls versucht die Erweiterung, den zu verwendenden Befehl automatisch zu ermitteln (docker compose oder docker-compose).

Docker Compose Down

Konfigurationseinstellung Standardwert
containers.commands.composeDown ${composeCommand} ${configurationFile} down

Unterstützte Token

Token Beschreibung
${configurationFile} Gesetzt auf -f plus den Arbeitsbereichs-relativen Pfad zur ausgewählten Docker Compose YAML-Datei.
${composeCommand} Gesetzt auf den Wert der Einstellung containers.composeCommand, falls diese gesetzt ist, andernfalls versucht die Erweiterung, den zu verwendenden Befehl automatisch zu ermitteln (docker compose oder docker-compose).

Zusätzlich unterstützte Token

Zusätzlich zu den Befehlsspezifischen unterstützten Token werden die folgenden Token in allen Befehlsvorlagen unterstützt.

Token Beschreibung
${workspaceFolder} Der Pfad des ausgewählten Arbeitsbereichsordners.
${config:some.setting.identifier} Der Wert einer beliebigen Konfigurationseinstellung, sofern es sich um einen String, eine Zahl oder einen booleschen Wert handelt. Diese Einstellungsidentifikatoren können beliebig definiert werden und müssen weder zu Visual Studio Code noch zu einer Erweiterung gehören.
${env:Name} Der Wert einer Umgebungsvariablen.
${command:commandID} Der Rückgabewert eines Befehls.
© . This site is unofficial and not affiliated with Microsoft.