dev-ops
Examen Todo - Niveau 2
NodeJS API, Statische Nginx Frontend & MongoDB.
1. Traefik Setup (Root)
sudo -iWord root gebruiker
mkdir -p ~/traefik && cd ~/traefikMaak map aan
docker network create gatewayMaak het netwerk aan
docker compose up -dStart Traefik (zorg voor dashboard config)
2. Dockerfiles Bouwen
FROM node:20-bullseyeWORKDIR /appCOPY package*.json ./RUN npm installCOPY . .CMD ["node", "index.js"]backend/Dockerfile (NodeJS)
FROM nginx:1.25COPY . /usr/share/nginx/htmlfrontend/Dockerfile (Statische Nginx site!)
3. MongoDB Configuratie
MONGO_INITDB_DATABASE=examen MONGO_INITDB_ROOT_USERNAME=examen MONGO_INITDB_ROOT_PASSWORD=examenwachtwoord Environment variabelen voor de DB container
volumes: - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro - mongodb-data:/data/dbVolume mounts voor init script en data persistence
4. .env Bestand (API)
STORAGE=mongodb MONGODB_HOST=db MONGODB_DB=examen MONGODB_USER=examen MONGODB_PWD=examenwachtwoord Environment variabelen voor de API container
5. Docker Compose Labels
traefik.http.routers.api.rule=Host(`...`) && PathPrefix(`/api`)API Routering (Backend)
traefik.http.routers.front.rule=Host(`...`) Frontend Routering (Statisch)