VSCode Dev Container¶
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:
Patrick Loeber - YouTube Vids with GitRepo
Patrick Loeber - How to create a great dev environment with Docker
Patrick Loeber - Docker Tutorial For Beginners - How To Containerize Python Applications
GitHub Code Repo zu Videos P Loeber Python Docker Tutorial
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¶
YouTube Video mit Erklärungen: DanCanCode - My Favorite Way To Handle Dev Environments | VS Code Devcontainers