dev-ops
Voorbeeldexamen - ChatBox
MongoDB, Node API (poort 3000) en statische Nginx Frontend.
1. Traefik Setup (Root)
sudo -iWord root gebruiker
cd ~/traefikGa naar je traefik map (indien al aangemaakt)
docker network create gatewayZorg dat het netwerk bestaat
docker compose up -dStart Traefik (image: traefik:v2.10)
2. Dockerfiles Bouwen
FROM node:20-bullseyeWORKDIR /appCOPY package*.json ./RUN npm installCOPY . .CMD ["node", "index.js"]api/Dockerfile (Let op: luistert intern op 3000)
FROM nginxCOPY . /usr/share/nginx/htmlfrontend/Dockerfile (Statische site)
3. MongoDB Configuratie
image: mongo:5.0.6Gebruik exact deze versie in docker-compose
volumes: - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro - mongo-data:/data/dbMount het init script en het named volume
4. Compose & Omgeving
MONGO_USER=admin MONGO_PWD=S3cret MONGO_URL=mongodb Environment variabelen voor de API service
traefik.http.routers.api.rule=Host(`...`) && PathPrefix(`/api`)traefik.http.services.api.loadbalancer.server.port=3000 API Labels: Let op poort 3000!
traefik.http.routers.front.rule=Host(`...`) Frontend Labels: Root domein