0% ont trouvé ce document utile (0 vote)
18 vues17 pages

7 Intégration Déploiement-Docker Github

Le document décrit le processus d'intégration et de déploiement d'une application web utilisant Docker et GitHub, en mettant en place une architecture avec un serveur MySQL, un serveur Node.js et une application React. Il aborde l'utilisation d'axios pour appeler l'API, la configuration de Docker Compose pour gérer les volumes et les images, ainsi que l'optimisation des fichiers Docker. Enfin, il mentionne l'utilisation de GitHub Actions pour automatiser le déploiement de l'application sur un service d'hébergement comme AWS.

Transféré par

tcatala32
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
18 vues17 pages

7 Intégration Déploiement-Docker Github

Le document décrit le processus d'intégration et de déploiement d'une application web utilisant Docker et GitHub, en mettant en place une architecture avec un serveur MySQL, un serveur Node.js et une application React. Il aborde l'utilisation d'axios pour appeler l'API, la configuration de Docker Compose pour gérer les volumes et les images, ainsi que l'optimisation des fichiers Docker. Enfin, il mentionne l'utilisation de GitHub Actions pour automatiser le déploiement de l'application sur un service d'hébergement comme AWS.

Transféré par

tcatala32
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Intégration déploiement

Docker & github


Finalisons notre architecture
Nous avons maintenant un serveur mysql, un adminer qui expose un manager
mysql, et un serveur nodejs qui se connecte à mysql et fourni une API

Il nous manque maintenant une connexion à l’api sur notre projet React et faire
tourner la webapp dans un dernier composant, qui communiquera avec notre api
Appel à l’api
A l’aide d’axios (à installer) on va
pouvoir faire appel à notre api, en
utilisant le port passé en paramètre,
qui sera le même que celui du
serveur

On affiche dans le dom le nombre


d’utilisateur récupéré
Image React
Toujours à l’aide de node, on
va créer un dossier app
dans le container et se
déplacer dedans.

La commande ENV va nous


permettre d’utiliser npm sans
gérer les droits d’accès des
fichiers en explicitant le .bin
dans le PATH global
Image React
On copie les fichiers
[Link] et lock, puis
on installe les
dépendances ainsi que
react-scripts pour pouvoir
exécuter le npm start plus
tard
Service React
Dans le docker compose on
va définir les volumes du
dossier courant vers le dossier
app sur le container, sauf les
node_modules, et utiliser le
champ command pour lancer
l’app web une fois
l’environnement en place
Lancez votre environnement total
Votre application doit vous afficher le bon nombre d’utilisateur

C’est l’occasion donc d’ajouter un nouveau script de migration qui va insérer au


moins un utilisateur à votre table
Builder les images directement depuis le docker-compose
Il est possible de préciser le chemin vers le dockerfile nécessaire aux images de
chaque service.

Ainsi il n’est plus nécessaire de supprimer les images et les builder avant de
redéployer notre docker compose
Définir le dockerfile
Le champ build va devenir :

build:

context: .

dockerfile: relativePathToDockerFIle

On va pouvoir faire un docker-compose -f [Link] build pour


rebuilder toutes les images définies dans le fichier yml

Si les images n’existent pas encore, la commande up suffit


A vous de jouer
Modifier votre docker-compose pour préciser le chemin vers les images interne
correspondant à un dockerfile

Donc votre service server et votre service react


Optimisons les volumes
Notre image copie de nombreux
fichiers en gérant des droits d’accès

Simplifions nous la vie ! Déplaçons le


fichier [Link] et dockerfile dans un
dossier server

Les volumes vont copier tous le


dossier server sauf node_modules

On applique la commande
directement dans le docker compose
Simplifions l’image node (DockerfileNodejs)
On test nos modifications
docker-compose -f [Link] build

docker-compose -f [Link] up --detach


.dockerignore
Le fichier Docker .dockerignore est utilisé pour éviter que certains fichiers et
répertoires ne se retrouvent dans votre Docker image.

Le fichier Docker .dockerignore est utilisé lorsque vous construisez un Docker


image et consiste en des règles correspondant à des fichiers et/ou des
répertoires.

● Réduction de la taille du fichier Docker image


● Plus rapide Docker image construit
● Éviter la divulgation des secrets
Github actions
On va tester le déploiement de notre application dans un docker compose au sein de
notre pipeline github

- name: Build the stack


run: docker-compose up -d

L’objectif ? Pouvoir exécuter des test end2end sur notre architecture


Et à terme, déployer cette architecture vers un service d’hébergement docker payant
comme digitalOcean, aws, hostinger, kamatera, ou vers un serveur perso
Exemple de déploiement avec aws ec2

source : [Link]

Vous aimerez peut-être aussi