Zum Inhalt springen

Dev Container Integration

Die Integration der Entwicklungsumgebung in VS Code Development Container erfolgt über die Datei devcontainer.json.

Im Gegensatz zur compose.yml beschreibt diese Datei keine Container-Architektur, sondern ausschließlich die Anbindung an VS Code.

Die devcontainer.json legt fest:

  • welcher Service als Dev Container verwendet wird
  • welcher Arbeitsbereich im Container geöffnet wird
  • welcher Benutzer für interaktive Arbeit genutzt wird
  • wie die Entwicklungsumgebung gestartet und beendet wird

devcontainer.json

{
"name": "Security-oriented Development Container",
"dockerComposeFile": "compose.yml",
"service": "dev",
"runServices": ["dev"],
"workspaceFolder": "/workspaces/security-oriented-dev-container-project",
"shutdownAction": "stopCompose",
"remoteUser": "node"
}

Die Konfiguration auf welcher diese Guideline aufbaut ist im Referenzprojekt zu finden.


devcontainer.json

"dockerComposeFile": "compose.yml"

VS Code verwendet ein bestehendes Docker Compose als Grundlage.

devcontainer.json

"service": "dev"

Der dev-Service (Container) wird als Dev Container verwendet. Nur dieser Container ist aus Sicht von VS Code die Entwicklungsumgebung.

devcontainer.json

"workspaceFolder": "/workspaces/security-oriented-dev-container-project"

Definiert den Arbeitsbereich innerhalb des Containers.

devcontainer.json

"remoteUser": "node"

Alle interaktiven Aktionen erfolgen als nicht-root Benutzer.

devcontainer.json

"shutdownAction": "stopCompose"

Beim Beenden des dev-Container wird das gesamte Compose-Projekt gestoppt.