Deze repository bevat een startpunt voor een fullstack-project met Docker:
Client/
— hier komt je Vue.js-project (frontend).Server/
— hier komt je ASP.NET Core WebAPI (backend).- Een MSSQL database draait ook als container.
- Een reverse proxy (nginx) routeert verkeer: de client is beschikbaar op poort 80 en de API onder het pad
/api
(ook op poort 80).
- Inputs: vervang de placeholders tussen
{{}}
in de repository met jouw waarden. - Output: na het bouwen via Docker Compose is de frontend bereikbaar op http://localhost en de API op http://localhost/api.
- Fouten/Edge-cases: controleer dat Docker Desktop draait, dat poort 80 vrij is en dat je sterk wachtwoord voor sa gebruikt.
De volgende placeholders komen in de repository voor. Vervang ze allemaal met je eigen waarden.
-
{{Jouw WebAppFileNaam}}
- Bestanden:
Server/Dockerfile
,Server/Program.cs
(indirect via dll naam) - Beschrijving: de naam van je ASP.NET projectbestand (zonder extensie bij sommige verwijzingen). Bijvoorbeeld
MyWebApp
als jeMyWebApp.csproj
enMyWebApp.dll
hebt.
- Bestanden:
-
{{Eventueel locaties van andere dll projecten}}
- Bestand:
Server/Dockerfile
- Beschrijving: optionele extra project- of bibliotheek-paden die je wil kopiëren (als je meerdere projecten hebt).
- Bestand:
-
{{Locatie die je gebruikt in je WebApp}}
- Bestand:
Server/Dockerfile
- Beschrijving: doelmap/relatieve pad in de buildcontext die je in je Dockerfile gebruikt.
- Bestand:
-
{{JouwConnectieNaam}}
- Bestanden:
Server/Program.cs
,docker-compose.yml
- Beschrijving: de naam van de connection string zoals gebruikt in je appsettings (bv.
DefaultConnection
ofAppDb
).
- Bestanden:
-
{{Jouw wachtwoord}}
- Bestand:
docker-compose.yml
- Beschrijving: sterk SA-wachtwoord voor de MSSQL container. Moet voldoen aan SQL Server password policy (minimaal 8 tekens, hoofdletter, kleine letter, cijfer en speciaal teken).
- Bestand:
-
{{Jouwdatabasenaam}}
- Bestand:
docker-compose.yml
- Beschrijving: de naam van de database die je wilt gebruiken/aanmaken.
- Bestand:
Zorg dat je elk van bovenstaande placeholders vervangt voordat je de containers opstart.
-
Installeer en start Docker Desktop (met WSL2 backend of Windows containers indien je dat nodig hebt).
-
Open een PowerShell venster en ga naar de projectmap (de map waar
docker-compose.yml
staat):
cd "c:\Users\Martijn\Desktop\Fullstack-project-met-Docker"
- Vervang alle
{{...}}
placeholders in de repository met jouw waarden. Belangrijke bestanden om aan te passen:
Server/Dockerfile
— zet hier de juiste projectnaam en eventuele extra projectkopieën.Server/Program.cs
— zorg dat de ConnectionStrings omgeving-variabele overeenkomt met{{JouwConnectieNaam}}
.docker-compose.yml
— vul{{Jouw wachtwoord}}
,{{Jouwdatabasenaam}}
en{{JouwConnectieNaam}}
in.
Tip: gebruik een teksteditor of VS Code zoek-en-vervang om alle {{
te vinden.
- Bouw en start alles met Docker Compose:
docker compose up -d --build
Dit bouwt de Docker images en start de containers in de achtergrond. Verwacht:
- Een
db
container (MSSQL) - Een
server
container (ASP.NET Core) - Een
client
container (Vue.js) - Een
nginx
container (reverse proxy)
- Controleer de logs (optioneel):
docker compose logs -f
- Open de applicatie in je browser:
- Frontend (Vue.js): http://localhost/
- Backend API: http://localhost/api
- Poort 80 is al in gebruik: stop de service die poort 80 gebruikt (IIS, Apache, andere) of pas nginx-config aan naar een andere poort.
- MSSQL start niet door zwak wachtwoord: gebruik een sterk wachtwoord voor
{{Jouw wachtwoord}}
. - Entity Framework migrations: als je migraties gebruikt, zorg dat de server container ze uitvoert bij start (of voer
dotnet ef database update
lokaal uit tegen de db container).
- Frontend:
Client/
(hier komt je Vue project). Bouw je Vue-app zoals normaal (npm / yarn) of laat Docker dit doen volgens de aanwezigeClient/Dockerfile
. - Backend:
Server/
(hier komt je ASP.NET Core WebAPI). Let opProgram.cs
waar de connection string wordt ingelezen via environment variables. - Reverse proxy:
docker/nginx/default.conf
(routeert/
naar de client en/api
naar de server).
docker compose down --volumes --remove-orphans
Dit stopt en verwijdert de containers, netwerken en volumes die door Compose zijn aangemaakt.