tuto

https://www.youtube.com/watch?v=9zUHg7xjIqQ

partie 1 ligne de commande

commandes apprises

docker build -t node-express-image .

docker run -d -p 3000:5000 -v $(pwd):/app:ro -v /app/node_modules --env-file ./.env --name node-express node-express-image -d detached mode :ro read only

docker exec -it node-express bash

printenv peut etre utile pour afficher les variables env

docker rm node-express -fv avec le v à la fin c'est pour supprimer les volumes anonymes associés attention ne pas le faire sur less conteneurs de db ou l'on veut preserver les données

docker volume ls docker volume prune

partie 2 docker compose

docker-compose up -d

docker-compose down -v avec le v à la fin c'est pour supprimer les volumes anonymes associés

docker-compose up -d --build force rebuild

partie 3 production env

docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d

docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d

puis ajouté dans docker file if --only=production : n'installe pas devdepencies

partie 4 multi container

on rajoute mongo dans docker compose on rajoute un named volume ce qui fait qu'on ne peut plus utiliser down -v docker volumes prune pour effacer les volumes inutiles mais attention

partie 5 connect containers

on utilise le nom des services dans docker-compose comme remplacement ip chaque serveur (dns)

parttie 6 launch order

depends_on

mais surtout ajouter some logic dans l'app pour bien checker que la DB est up

ajout de nginx

conf dans le dossier nginx on passe les plats et on fait passer certains headers avec qui auraient ete enlevés par nginx

load balancing

docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d --scale node-express=2 on lance 2 instances de node-express et en checkant les logs on s'apercoit que ça marche

deployment

3:39