From a0523f43029c4957bdbcb3a9b039c725311763c0 Mon Sep 17 00:00:00 2001 From: Olivier Barais Date: Mon, 8 Apr 2019 17:15:34 +0200 Subject: [PATCH] add --- Readme.md | 34 +++++++++++++++++++--------------- src/main/trollface.jpg | Bin 0 -> 27460 bytes 2 files changed, 19 insertions(+), 15 deletions(-) create mode 100644 src/main/trollface.jpg diff --git a/Readme.md b/Readme.md index 15b121e..9a4ec1b 100644 --- a/Readme.md +++ b/Readme.md @@ -82,7 +82,7 @@ docker run -d -p 8080:80 -v /var/run/docker.sock:/tmp/docker.sock -t jwilder/ngi ``` -Dans le suite nous allons utiliser terminator pour visualiser les effets du load-balancing. +Dans le suite nous allons utiliser terminator pour visualiser les effets du load-balancing (uniquement pour ceux qui sont sur leur propre portable). ```bash apt-get install terminator @@ -95,9 +95,16 @@ sudo terminator ``` -modifiez votre fichier /etc/hosts pour faire correspondre **m** vers 127.0.0.1. Ce serait à faire sur votre gestionnaire de nom de domaine en temps normal. +Si vous êtes sur votre propre portable, modifiez votre fichier /etc/hosts pour faire correspondre **m** vers localhost. Ce serait à faire sur votre gestionnaire de nom de domaine en temps normal. -Pour ceux qui n'ont pas les droits root +Vous devez avoir une ligne qui ressemble à cela. + +```txt +127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain m +``` + + +Pour ceux qui n'ont pas les droits root, exécutez les commandes suivantes ```bash echo 'm localhost' >> ~/.hosts @@ -106,13 +113,6 @@ curl m:8080 ``` - -Vous devez avoir une ligne qui ressemble à cela. - -```txt -127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain m -``` - Puis créer n fenètre dans votre navigateur terminator (clic droit puis split horizontal ou vertical). Dans ces terminales, lancez la commande suivante pour tester votre resolve proxy. @@ -120,11 +120,19 @@ Dans ces terminales, lancez la commande suivante pour tester votre resolve proxy docker run -e VIRTUAL_HOST=m -t -i nginx ``` +Testez votre resolv proxy en lançant la commande suivante. + +```bash +curl m:8080 +``` + + En tapant la commande suivante, vous pouvez regarder le fichier de configuration nginx qui sera généré à l'adresse suivante /etc/nginx/conf.d/default.conf. (N'oubliez pas de remplacer 865c1e67a00e par l'id de votre nginx en resolve proxy ($docker ps) pour récupérer la liste des containers en cours d'exécution. ```bash docker exec -it 865c1e67a00e bash ``` +barais@kevtop2:/media/barais/ed91608b-85b0-46e5-919c-ade3798e6dd6/home/barais/workspaces/tps/projetESIR$ ls - [source](http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/) @@ -136,10 +144,6 @@ docker ps #pour avoir la liste docker kill "IDDOCKER" #pour tuer un docker. ``` - - - - ### Etape 2: Utilisation de docker compose Utilisez docker compose pour déployer votre vos 4 services nginx et votre loadbalancer. @@ -170,7 +174,7 @@ https://advancedweb.hu/2016/03/01/opencv_ubuntu/ N'oubliez pas d'installer ant au sein de votre image docker ainsi que la jvm et maven. -Nous souhaitons faire en sorte de fournir une image docker finale la plus petite possible. +Nous souhaitons faire en sorte de fournir une image docker finale la plus petite possible. (Un paquet de carambar à la plus petite image fonctionnelle) Fournissez donc deux fichiers docker file, un premier pour construire l'image qui permet de compiler opencv et compiler votre application. Un deuxième qui permet de construire l'image minimale pour votre application. diff --git a/src/main/trollface.jpg b/src/main/trollface.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fb814cfb07442fa929d43f99392d0d2708b5cc35 GIT binary patch literal 27460 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