Dev Container Integration
Die Integration der Entwicklungsumgebung in VS Code Development Container erfolgt über die Datei devcontainer.json.
Im Gegensatz zur
compose.ymlbeschreibt 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
Beispielkonfiguration
Abschnitt betitelt „Beispielkonfiguration“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.
Zentrale Eigenschaften
Abschnitt betitelt „Zentrale Eigenschaften“dockerComposeFile
Abschnitt betitelt „dockerComposeFile“devcontainer.json
"dockerComposeFile": "compose.yml"VS Code verwendet ein bestehendes Docker Compose als Grundlage.
service
Abschnitt betitelt „service“devcontainer.json
"service": "dev"Der dev-Service (Container) wird als Dev Container verwendet. Nur dieser Container ist aus Sicht von VS Code die Entwicklungsumgebung.
workspaceFolder
Abschnitt betitelt „workspaceFolder“devcontainer.json
"workspaceFolder": "/workspaces/security-oriented-dev-container-project"Definiert den Arbeitsbereich innerhalb des Containers.
remoteUser
Abschnitt betitelt „remoteUser“devcontainer.json
"remoteUser": "node"Alle interaktiven Aktionen erfolgen als nicht-root Benutzer.
shutdownAction
Abschnitt betitelt „shutdownAction“devcontainer.json
"shutdownAction": "stopCompose"Beim Beenden des dev-Container wird das gesamte Compose-Projekt gestoppt.