Anpassen von Projekt- und Editoreinstellungen
Sie haben einen Entwicklercontainer für eines der Projekte Ihrer Agentur eingerichtet. Es funktioniert jetzt "nur" für alle Benutzer, die über Docker und die Erweiterung "Dev Containers" verfügen. Abhängigkeiten müssen weiterhin installiert werden. Möglicherweise benötigen sie auch einige Visual Studio Code-Erweiterungen, die sie nicht kennen.
Glücklicherweise können Sie das gesamte Projektsetup vollständig anpassen und automatisieren, indem Sie die devcontainer.json Datei verwenden.
Ein genauerer Blick auf devcontainer.json
Sehen wir uns die Hauptoptionen in der .devcontainer/devcontainer.json
Datei aus dem Produktdashboard-Projekt an. Es ist ein bisschen lang, alle auf einmal zu betrachten, also sehen wir uns es in Abschnitten an.
Buildkonfiguration
Die image
Eigenschaft definiert, wie der Container erstellt wird, basierend auf dem, was als Containerimage bezeichnet wird.
"image": "mcr.microsoft.com/devcontainers/python:0-3.11"
},
Dieses Bild wird im Devcontainers/Images-Repository gehostet, in dem Sie es weiter auschecken können. Die Bilder in diesem Repository sind alle vordefinierten Images, die Ihren Workflow beschleunigen und zu einer einfacheren .devcontainer/devcontainer.json
Konfiguration führen.
Sie können auch Dateien verwenden, die als Dockerfile- oder Docker Compose-Datei bezeichnet werden, um Ihr Setup zu konfigurieren. Diese Dateien können sich in Ihrem .devcontainer
Ordner befinden und ihnen ermöglichen, bestimmte Setupanforderungen weiter zu konfigurieren, z. B. die Installation zusätzlicher Software. Weitere Informationen finden Sie in unserer Dokumentation zu Entwicklungscontainern.
Funktionen
Entwicklungscontainer-Features sind eigenständige, austauschbare Einheiten von Installationscode und Entwicklungscontainerkonfiguration. Der Name leitet sich von der Idee ab, dass Sie Ihrem Entwicklungscontainer durch einen entsprechenden Verweis schnell und unkompliziert zusätzliche Tool-, Runtime- oder Bibliotheksfeatures hinzufügen können, die von Ihnen oder Ihren Projektmitarbeitern genutzt werden können.
Wenn Sie den VS Code-Befehl Dev Containers: Add Dev Container Configuration Files verwenden, wird eine Liste von Skripts zum Anpassen der vorhandenen Dev-Containerkonfigurationen angezeigt, z. B. das Installieren von Git oder der Azure CLI.
Projekteinstellungen
Ein späterer Abschnitt der Datei befasst sich direkt mit der Projektkonfiguration.
customizations
legt produktspezifische Eigenschaften für Produkte fest, die Dev-Container unterstützen, z. B. VS Code und GitHub Codespaces.
Als Beispiel können Sie festlegen vscode.settings
, dass computerspezifische Einstellungen in den Container kopiert werden. Möglicherweise haben Sie diese Einstellungen in Ihrem eigenen Visual Studio Code-Setup. Indem Sie sie dem settings
hinzufügen, stellen Sie sicher, dass alle Personen, die dieses Projekt öffnen, diese spezifischen VS-Code-Einstellungen erhalten.
In diesem Python-Container können Sie diese Einstellungen im Basisimage mcr.microsoft.com/devcontainers/python:0-3.11
sehen. Sie bieten dem Benutzer eine verbesserte Python-Bearbeitungserfahrung.
- Sie können das
extensions
Array innerhalb dercustomizations.vscode
Eigenschaft verwenden, um anzugeben, welche Visual Studio Code-Erweiterungen in Visual Studio Code installiert werden sollen, wenn eine Verbindung mit dem Container hergestellt wird. Ihr normales Visual Studio Code-Setup und alle Erweiterungen, die Sie bereits haben, sind nicht vorhanden, wenn Sie Dev-Container verwenden. Erweiterungen werden hier mit ihren IDs angegeben.
postCreateCommand
Mit der postCreateCommand
Eigenschaft können Sie alle gewünschten Befehle ausführen, nachdem der Container erstellt wurde. Wenn Sie sich aus der ersten Übung erinnern, mussten Sie den pip3
Befehl ausführen, um Abhängigkeiten zu installieren. Aber wie würden Sie dies tun? Möglicherweise nicht. Sie können sie hier so konfigurieren, dass sie automatisch erfolgt, und andere müssen sich keine Gedanken darüber machen.
In der nächsten Übung ändern Sie die devcontainer.json Datei, um mehrere Aspekte des Projekts zu automatisieren, die andere Entwickler für sofortigen Erfolg einrichten.