dev-ops

Voorbeeldexamen - ChatBox

MongoDB, Node API (poort 3000) en statische Nginx Frontend.

1. Traefik Setup (Root)

sudo -i
Word root gebruiker
cd ~/traefik
Ga naar je traefik map (indien al aangemaakt)
docker network create gateway
Zorg dat het netwerk bestaat
docker compose up -d
Start Traefik (image: traefik:v2.10)

2. Dockerfiles Bouwen

FROM node:20-bullseye
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["node", "index.js"]
api/Dockerfile (Let op: luistert intern op 3000)
FROM nginx
COPY . /usr/share/nginx/html
frontend/Dockerfile (Statische site)

3. MongoDB Configuratie

image: mongo:5.0.6
Gebruik exact deze versie in docker-compose
volumes:
- ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
- mongo-data:/data/db
Mount 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