images docker : https://hub.docker.com/ Template : https://startbootstrap.com/themes/
branch : master
- cloner le repo
- lancer le script qui build l'image (.\images-docker\apache-php-image\script_build.sh)
- lancer le script qui run un containers avec le script (script_run.sh, la redirection de port peut être modifié)
- Dans un naviguateur, tapez : 192.168.99.100:9090
https://startbootstrap.com/templates/blog-home/
Pull la branche fb-express-dynamic.
branch : fb-express-dynamic
- Cloner le repo
- Récupérer et aller sur la branche fb-express-dynamic
- Aller dans le repertoire express-image
- lancer le script qui build l'image (script_build.sh)
- lancer le script qui run un containers avec le script (script_run.sh, la redirection de port peut être modifié)
- Dans un naviguateur, tapez : http://192.168.99.100:9292/
Pull la branche fb-apache-reverse-proxy.
- Cloner le repo
- Récupérer et aller sur la branche fb-apache-reverse-proxy
- Aller dans le répertoire images-docker/apache-reverse-proxy
- Faire une résolution DNS sur votre machine (fichier hosts en admin) entre votre IP docker et demo.res.ch
- Assurez-vous que tous les containers sont kill pour le bon fonctionnement de cette étape.
- Builder l'image dans .\images-docker\apache-reverse-proxy avec script_build.sh.
- Aller a la racine, et lancer le script "script_run_all.sh". Il devrait lancer les 3 images faites jusqu'ici et les lier grâce à la configuration.
- Dans le naviguateur, aller sur http://demo.res.ch:8080/ pour accéder au contenu du docker statique et il est possible d'accéder seulement au tableau random générer par la partie dynmaic sur http://demo.res.ch:8080/api/animals/
Dans cette partie, nous avons du configurer le fichier "xxx-reverse-proxy.conf" que nous avons nommé "001-reverse-proxy.conf" afin de faire le "mapping" des requêtes sur les dockers et donné un nom au serveur (demo.res.ch).
Pour le dockerFile, nous avons eu besoin de copier notre dossier de configuration dans le docker COPY conf/ /etc/apache2
Ensuite, lancer les commande de apache2 afin d'activer les configurations et les sites. RUN a2enmod proxy proxy_http RUN a2ensite 000-* 001-*
Pull la branche fb-ajax.
- Cloner le repo
- Récupérer et aller sur la branche fb-ajax
- Aller dans le repertoire images-docker/apache-reverse-proxy
- Faire une resolution DNS sur votre machine (fichier hosts en admin) entre votre IP docker et demo.res.ch
- Assurer vous que tous les containers sont kill pour le bon fonctionnement de cette étape.
- Aller a la racine, et lancer le script "script_run_all.sh".
- Dans le naviguateur, aller sur http://demo.res.ch:8080/ et il est maintenant possible de voir la page statique et une modification toutes les 2 secondes sur le second titre du premier animal du tableau récupéré via une requête faite dans le JS de la partie au JS de la partie dynamique.
Pull la branche fb-dynamic-reverse.
branche : fb-dynamic-reverse
Dans la partie reverse statique, il était important que tous les containers soit killés afin de savoir quelle addresses IPs aurait les dockers. Maintenant, le but est de pouvoir s'en fiche de l'ordre ou de si d'autre container tourne.
Pour ce faire, il a fallut écrire du code PHP afin de réecrire notre configuration en récupérant des variables d'environment pour les addresses et ports des containers utilisés. Voici une marche à suivre pour mieux comprendre:
- Cloner le repo
- Faire une resolution DNS sur votre machine (fichier hosts en admin) entre votre IP docker et demo.res.ch
- Aller a la racine, et lancer le script "script_run_all.sh". Ce script va lancé les containers statique et dynamique et vous afficher les adresses IPs
- Dans le naviguateur, aller sur http://demo.res.ch:8080/
branche : fb-traefik
Avoir un cluster management dynamique.
- Cloner le repo
- Faire une résolution DNS sur votre machine (fichier hosts en admin) entre votre docker IP et demo.res.ch
- Allez à la racine et lancez le script "script_run_all.sh".
- Lorsque demandé, entrez la commande affichée au terminal dans le terminal docker pour lancer traefik, ensuite appuyez sur enter pour continuer le script
- Dans le naviguateur, aller sur http://demo.res.ch:9090 pour avoir l'ui de traefik.
- Vous pouvez observer ce qui se passe.
- On voit les plusieurs serveurs statiques et dynamiques
On peut voir qu'on a créé 3 serveurs statiques et 3 dynamiques avec le script. Si on en kill un, on le voit disparaître de l'ui traefik. C'est grâce au "watch = true" sous [docker] dans le traefik.toml.
branche : fb-traefik
Avoir des sticky sessions
Dans les Dockerfile des serveurs, on a mis les labels "traefik.backend.loadbalancer.stickiness"="true" afin d'avoir des sticky sessions.
branche : fb-ui
l'objectif est d'avoir une interface utilisateur afin de manager docker.
-
Cloner le repo
-
Faire une résolution DNS sur votre machine (fichier hosts en admin) entre votre docker IP et demo.res.ch
-
Allez à la racine et lancez le script "script_run_all.sh".
-
Lancez les deux commandes suivantes dans le terminal docker :
docker volume create portainer_data docker run -d -p 9000:9000 --name ui -v "/var/run/docker.sock:/var/run/docker.sock" -v portainer_data:/data portainer/portainer
-
Dans le naviguateur, aller sur http://demo.res.ch:9000/
-
Crééz un compte
-
Sélectionnez local et connect