TP4 | ||
TP5-6 | ||
README.md |
TP 1
TP 2
TP 4
Étape 1 : Créer deux dossiers : "web" et "nginx"
Étape 2 : Mettre le fichier index.php
dans le dossier web et le fichier default.conf
dans le dossier nginx
Étape 3 : Pour déployer le server REDIS il faut ajouter ceci dans le fichier docker-compose.yml
services:
redis:
image: redis/redis-stack
ports:
- "6379:6379"
volumes:
- redis_data:/data
restart: always
Étape 4 : Pour déployer le server REDISINSIGHT il faut ajouter ceci dans le fichier docker-compose.yml
services:
redisinsight:
image: redis/redisinsight
ports:
- "5540:5540"
restart: always
volumes:
- redisinsight_data:/db
⚠️ Attention ne pas oublier de mettre à la fin du ficher un bloc volumes
volumes:
redis_data:
redisinsight_data:
Étape 5 : Pour déployer le server PHP il faut ajouter ceci dans le fichier docker-compose.yml
services:
php:
image: windok/php-redis
restart: always
volumes:
- ./web:/usr/share/nginx/html
environment:
NOM : "moguljak"
PRENOM : "tom"
deploy:
replicas: 2
Étape 6 : Pour déployer le server NGINX il faut ajouter ceci dans le fichier docker-compose.yml
services:
nginx :
image: nginx
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./web:/usr/share/nginx/html
- ./nginx:/etc/nginx/conf.d
Étape 7 : Pour initialiser la base de données deux méthodes s'offrent à nous. La première en se connectant directement au serveur REDIS et la deuxième en utilisant l'interface REDISINSIGHT.
-
Première solution
- Démarrer docker avec la commande
docker compose up -d
- Effectuer la commande
docker ps
afin de lister tous conteneurs - Maintenant qu'on sait sur quel docker on veut se connecter (celui de REDIS) on peut effectuer la commande suivante nous permettant d'ouvrir un Shell directement dans le docker.
docker exec -it tp4-redis-1 /bin/bash
- Maintenant effectuer cette commande
redis-cli
elle va nous permettre de définir la clef - Et ensuite pour définir la clef on effectue
set code 12345
- Maintenant vous pouvez voir les changements en allant sur la page "http://localhost/index.php"
- Démarrer docker avec la commande
-
Deuxième solution
TP 5/6
Étape 1 : Il faut utiliser de nouveau ce qu'on a fait lors du TP4 afin de faire la mise en réseau. Pour cela nous allons tout d'abord ajouter ceci :
networks:
- back
Sur le service REDIS, REDISINSIGHT
networks:
- front
Sur le service NGINX
networks:
- front
- back
Sur le service PHP Et un bloc networks à la fin du fichier :
networks:
front:
back:
Étape 2 : On va commencer par faire un docker compose contenant les services de cadvisor et de node exporter. Pour la partie cadvisor on va mettre
services:
cadvisor:
image: google/cadvisor:latest
ports:
- "8080:8080"
restart: unless-stopped
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro*
Et pour la partie node exporter
services:
node-exporter:
image: prom/node-exporter:latest
ports:
- "9100:9100"
restart: unless-stopped
Étape 3 : Maintenant on va faire un docker compose pour le service de prometheus
services:
prometheus:
image: prom/prometheus:latest
restart: unless-stopped
volumes:
- ./prometheus/:/etc/prometheus/
ports:
- "9090:9090"
⚠️ Attention, il ne faut pas oublier de faire le fichier de configuration de prometheus (prometheus.yml) et ensuite de la mettre dans un dossier prometheus
global:
scrape_interval: 1m
evaluation_interval: 1m
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 1m
static_configs:
- targets: ['localhost:9090']
- job_name: 'node'
static_configs:
- targets: ['node-exporter:9100']
- job_name: 'cadvisor'
static_configs:
- targets: ['cadvisor:8080']
Ce fichier de configuration va nous permettre de faire le lien entre le service prometheus et les services cadvisor et node exporter
Étape 4 : Maintenant il ne reste plus qu'à faire le docker compose pour le service Grafana.
services:
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
restart: unless-stopped
Étape 5 :