DevContainers
met MongoDB voorbeeld
DevContainers
Intro
Dit project zal gebruik maken van Node, Typescript, Express en MongoDB.
Node: de basis om onze applicatie te ontwikkelen
Typescript: de taal die we gebruiken om te ontwikkelen binnen Node
Express: back-end framework
MongoDB: NoSQL database omgeving
Hoewel het mogelijk is om deze systemen te installeren op onze computer, gaan we gebruik maken van Docker containers. Dit heeft enkele voordelen:
Samenwerking: door de container-setup te delen met anderen (bv. via git) verzekeren we dat iedereen werkt met exact dezelfde versie van Node, Angular, Express en PostgreSQL.
Deployment: we kunnen de server opzetten zodat deze Docker containers kan draaien. Hierdoor wordt deployment van onze app een heel stuk gemakkelijker.
Setup: moet je werken op een ander apparaat? Wil je verder werken via een online codespace? Heb je je eigen apparaat moeten herinstalleren? Met één command ga je terug aan de slag.
Om te kunnen ontwikkelen in deze Docker omgeving gaan we gebruik maken van een DevContainer. Een DevContainer laat ons toe om een Docker container als development omgeving te gebruiken. VS Code heeft (via het remote development extension pack) de mogelijkheid om een devcontainer op te starten die je hebt opgeslagen op een git repository.
Eén van de gemakkelijkste manieren waarmee een DevContainer kan gestart worden is een Git repository aanmaken. Binnen die Git repository wordt vervolgens een folder .devcontainer
gemaakt, met daarin een devcontainer.json
bestand. Dit bestand bepaalt welke systemen beschikbaar zullen zijn in de DevContainer. VS Code heeft een handige extension die dit bestand voor jou creëert.
Overzicht
Software
Installeer deze software voor je begint aan de rest van de guide. Je hebt alles nodig dat hieronder staat opgelijst.
WSL: nodig om Docker te draaien.
Open Powershell als administrator
Gebruik het volgende commando en volg de installatie procedure.
Docker Desktop: Docker Desktop installeert meteen ook de cli van Docker. Docker heb je nodig om een container op te starten.
Visual Studio Code: De IDE waar we van gebruik maken in deze guide.
Remote Development: De extensions die vereist zijn om in VS Code te werken met DevContainers.
Opstart Repository
In deze guide maak ik gebruik van GitLab. Github werkt even goed, net als andere git repositories.
In Gitlab:
Maak een nieuw project aan.
Kies voor een 'blank project'.
Vul de gegevens in van je project:
project naam
slug
vink de optie UIT om een readme aan te maken.
Eens je project is aangemaakt hebben we de HTTPS URL nodig van je git project. Deze URL vind je terug onder de knop 'Clone'.
Opstart DevContainer
Stap 1: opstart Docker en VSCode
Start Docker op en zorg dat het venster van Docker Desktop openstaat.
Open Visual Studio Code (VS Code). Kijk na of je het Remote Development Extension Pack geinstalleerd hebt. Het maakt niet uit welk bestand of project momenteel geopend is, want VS Code zal voor dit project zelf een nieuw venster openen.
Stap 2: van Repository naar Devcontainer
Open het Command Palette (
Ctrl+Shift+P
) en zoek naar het commandoDev Containers: Clone Repository in Container Volume
.Druk op Enter om het commando te bevestigen.
Er wordt nu om een Git URL gevraagd. Dit is de HTTPS URL van je git repository.
⚠️ Er is een tweede commando dat er sterk op lijkt (
Dev Containers: Clone Repository in Named Container Volume
). Let dus op dat je voor het juiste kiest!
Stap 3: DevContainer Configuratie
Je wordt gevraagd om een Dev Container Configuration te kiezen. Zoek naar de optie '
Node.js & Typescript
'.Bij de volgende opties mag je de default waardes kiezen
De container wordt nu gedownload en opgestart. Dit kan even duren. Zeker wanneer je dit voor het eerst doet, zal het downloaden wat tijd kosten.
Last updated