-
L'application traditionnelle
à 3 niveaux commence
-
avec le navigateur,
c'est-à-dire le client,
-
un serveur HTTP
-
puis une base de données
pour le stockage.
-
Selon ce avec quoi vous travaillez,
cela prendra du temps
-
pour configurer
cet environnement de développement.
-
Nous allons faire ceci
avec Docker en cinq minutes
-
et nous utiliserons
des images ayant été prédéfinies.
-
Sur la gauche,
vous voyez l'image de base
-
qui vous donne
votre système d'exploitation.
-
Celle du milieu est Node
qui sera notre serveur HTTP.
-
Les créateurs officiels de Node
ont créé une image officielle Node.
-
La même chose peut être obtenue
à partir de l'image Mongo.
-
Je vais vous montrer d'où
elles proviennent : Docker Hub.
-
Si nous cherchons et tapons "Node"
-
nous voyons qu'il y a
une image officielle Node
-
avec plus de 2 000 étoiles
et plus de 10 000 téléchargements.
-
Si nous faisons pareil avec Mongo,
les chiffres sont similaires.
-
Ils sont très utilisés par la communauté
-
pour mettre en place
de plus gros blocs de Lego
-
pour commencer
à construire notre application.
-
Je vais aller sur le Terminal,
mais avant je compile toutes mes images.
-
Regardons ce qui
se trouve dans le fichier.
-
J'ai créé cela.
-
J'ai un Dockerfile et un docker-compose.
-
La première ligne se réfère
à cette image officielle Node.
-
Il va aller la chercher localement,
-
s'il ne l'a pas,
il la téléchargera
-
et l'utilisera pour ajouter
les commandes supplémentaires.
-
Dans cette nouvelle image que vous pouvez
considérer comme une nouvelle machine,
-
j'ajoute un répertoire de travail
puis installe un nodemon.
-
Je fais cela car je vais configurer
une application de serveur Node
-
et chaque fois que je ferai un changement,
je veux qu'elle s'arrête et s'actualise.
-
Ensuite, je copie un package.json
-
qui a les conditions
pour cette application particulière.
-
Puis j'exécute npm install,
pour charger des packages,
-
peu importe celui dont Node
aura besoin pour cette application.
-
Je fais une copie, mon serveur est
server.js et j'expose le port 3000.
-
Mon docker-compose rassemble
toutes les images que je possède.
-
Chaque élément sur la gauche
définit un service.
-
J'ai donc "db" et "web",
j'ai choisi ces noms.
-
Ce qui suit est la définition
de ce service.
-
Ici, j'ai une image Mongo
qui se réfère à DockerHub Mongo.
-
Ça va la télécharger.
-
Puis j'expose quelques ports.
-
Un pour l'intérieur,
l'autre pour l'extérieur.
-
Si cela échoue,
je veux qu'il recommence.
-
C'est le port par défaut.
-
Puis, je fais quelque chose
de similaire pour le web,
-
cela fait référence au Dockerfile.
-
Je vais déjà le construire,
j'apporte cette image
-
et toutes ces commandes
seront exécutées.
-
Quand c'est fait, je fais correspondre
mon système de répertoire local,
-
pour qu'il se superpose
au système interne.
-
Je fais ceci pour ne pas
aller dans le conteneur.
-
Je mets en correspondance mes ports,
je veux qu'il fonctionne sur le port 3000.
-
Je le relie à la base de données
pour pouvoir le voir
-
du point de vue de Node.js,
puis j'exécute une commande :
-
nodemon
-
C'est ce package,
node monitor npm,
-
qui me permet d'exécuter
une application Node.
-
Et ça le recharge simplement
à chaque fois que je fais edit.
-
Voici la définition de mes fichiers.