VSCode Dev Container

VSCode Dev Containers

VSCode Dev Containers

Jetzt bauen wir uns noch eine weitere Technikstufe in eine Entwicklungsumgebung: Dev Contiainers.

Hinweis

Man kann diese Entwicklungsumgebung in andere IDE (Entwicklungsplattformen) einbauen: IntelliJ IDEA, Pycharm oder alle VSCodium basierte IDE wie Gitpod oder Theia IDE.

Wir schauen uns die Visual Studio Code Dev Containers an. Wir beginnen mit ein paar Infolinks:

Python Beispiele mit Dev Container Development inkl. Debugging mit Videos auf Youtube und Begleitmaterial auf Git Repo:

Die Dev Container sind eine wahre Freude, weil sie in vielen Fällen wirklich alle nötigen Werkzeuge mitbringen. Da liegt aber auch das Problemchen. Aktuelle frisch erstellte Python Images können leicht (und sehr schnell) 1 GB und größer werden!

Allerdings muss man fairer Weise erkklären, dass diese Werte für die MS-VSCode-seitigen Builds gilt. Die sollen eben auch viele technische Baustellen bedienen.

Man kann die Dev Container auch auf Maß selber bauen und durch eigene Direktiven die letztlich genutzten Umgebungen in Größe und Fähigkeit selbst bestimmen: VSCode - Docs - Create Dev Container.

Die Images selber kann man unter GitHub Dev Containers Images Tree genauer betrachten. Dort gibt es auch die Dockerfile Dateien, mit denen die Standard-Container gebaut sind. Und von da aus kann man selbst loslegen.

Übung mit Python Vorgaben

Ich habe die nötigen Dateien für ein Python Dev Container Image mal heruntergeladen und bei meinen containercodes (GitLab Repo) beigefügt.

Nachdem man in VSCode den Ordner .devcontainer bereitgestellt hat lässt man das neue Image/den Container erstellen:

F1 öffnet >Dev Containers: Reopen in Container

Die Erstellung des gewünschten Containers (mit allen Eigenschaften und Software) wird angeschubst und schon geht sie los die wilde Fahrt.

Das kann dann auch gerne mal dauern

Die Images enhalten neben dem Präfix vsc- desweiteren den Projekt-Namen (Ordnernamen) und eine individuelle Kennung.

Die Ablage der Projekte in Volume Mounts sollte uns an deren Pflege und Sicherung (Backup) erinnern.

Als Königsdisziplin kann man die Projekte auch gleich Remote mit einem Online Git-Repo (GitHub, GitLab, …) verbinden. Das zeige ich selten in den Seminaren, da ich meine Accounts/Kennungen hier nicht gerne benutze und die Trainees meist keine entsprechenden Zugänge parat haben.

Dev Container mit Git Repo als Remote Volume

Dev Container mit Git Repo als Remote Volume

YouTube Video mit Erklärungen: DanCanCode - My Favorite Way To Handle Dev Environments | VS Code Devcontainers