0% ont trouvé ce document utile (0 vote)
34 vues3 pages

TP Docker Nodejs

Ce TP vise à créer une application Node.js avec une base de données PostgreSQL, le tout conteneurisé avec Docker et orchestré avec Docker Compose. Les étapes incluent la mise en place de l'API, la dockerisation du backend et de la base de données, ainsi que l'orchestration des services. Les livrables comprennent le projet sur GitHub et les fichiers nécessaires à l'exécution de l'application.

Transféré par

dahmanisoulaimane9
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

Thèmes abordés

  • docker-compose.yml,
  • Orchestration,
  • Service PostgreSQL,
  • Services,
  • Récupération de données,
  • Installation,
  • JSON,
  • Table users,
  • Fichier .env,
  • Données de test
0% ont trouvé ce document utile (0 vote)
34 vues3 pages

TP Docker Nodejs

Ce TP vise à créer une application Node.js avec une base de données PostgreSQL, le tout conteneurisé avec Docker et orchestré avec Docker Compose. Les étapes incluent la mise en place de l'API, la dockerisation du backend et de la base de données, ainsi que l'orchestration des services. Les livrables comprennent le projet sur GitHub et les fichiers nécessaires à l'exécution de l'application.

Transféré par

dahmanisoulaimane9
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

Thèmes abordés

  • docker-compose.yml,
  • Orchestration,
  • Service PostgreSQL,
  • Services,
  • Récupération de données,
  • Installation,
  • JSON,
  • Table users,
  • Fichier .env,
  • Données de test

TP Docker et Node.

js

Objectif du TP :

L’objectif de ce TP est de vous permettre de mettre en place une application Node.js avec
une base de données PostgreSQL, le tout conteneurisé avec Docker et orchestré avec Docker
Compose. Vous allez construire une API REST simple qui communique avec une base de
données PostgreSQL et est déployée sur plusieurs containers Docker.

Enoncé :

### Partie 1 : Mise en place de l’application Node.js

1. Créez un projet Node.js dans un dossier `backend`.


- Initialisez-le avec `npm init` et installez **Express.js** ainsi que le client **pg** pour
PostgreSQL.

2. Créez une API avec une route `/users` qui :


- Se connecte à une base de données PostgreSQL.
- Récupère une liste d’utilisateurs dans une table `users` (id, nom) et la retourne en JSON.

3. Vous devez utiliser les variables d’environnement pour la configuration de la base de


données (nom de la base, utilisateur, mot de passe).

### Partie 2 : Dockerisation du backend

1. Créez un fichier `Dockerfile` dans le dossier `backend` :


- Basez-vous sur l’image officielle de Node.js.
- Copiez les fichiers du projet et installez les dépendances.
- Exposez le port 3000 de votre container pour que l’application soit accessible.

2. Créez un fichier `.dockerignore` pour éviter d'inclure les fichiers inutiles dans l’image
Docker (comme `node_modules`).

3. Construisez et testez votre image Docker en local avec les commandes `docker build` et
`docker run`.
### Partie 3 : Dockerisation de la base de données PostgreSQL

1. Créez un fichier `docker-compose.yml` à la racine de votre projet :


- Ajoutez un service pour PostgreSQL, en utilisant l’image officielle `postgres`.
- Assurez-vous que le service PostgreSQL expose le port `5432` et que ses données sont
persistées dans un volume Docker.
- Définissez les variables d’environnement nécessaires pour la base de données (nom de la
base, utilisateur, mot de passe).

### Partie 4 : Orchestration avec Docker Compose

1. Dans le fichier `docker-compose.yml`, ajoutez un service pour votre backend Node.js :


- Ce service doit dépendre du service PostgreSQL.
- Vous devez également exposer le port 3000 du backend pour pouvoir tester l’API.

2. Reliez les services (backend et PostgreSQL) en utilisant le réseau Docker interne, ce qui
permettra à votre application de se connecter à PostgreSQL avec le nom du service comme
adresse d'hôte (ex : `db`).

3. Ajoutez un fichier `.env` pour définir les variables d’environnement utilisées dans les
services (comme les identifiants de la base de données).

### Partie 5 : Initialisation de la base de données

1. Initialisez la base de données en ajoutant une table `users` et quelques données de test
dans PostgreSQL.
- Vous pouvez utiliser un fichier `init.sql` qui sera exécuté lors du démarrage du service
PostgreSQL (via Docker Compose).

### Partie 6 : Lancer l’application et tester

1. Lancez l’ensemble de l’application avec Docker Compose : `docker-compose up --build`.


2. Vérifiez que les services démarrent correctement et que l’application est accessible sur
`http://localhost:3000`.
3. Testez l’API `/users` en y accédant via votre navigateur ou un outil comme Postman pour
vérifier qu’elle retourne bien les utilisateurs de la base de données.
Livrables :

- Projet sur GitHub.


- Fichiers `docker-compose.yml`, `Dockerfile`, et le code source de l’API.

Vous aimerez peut-être aussi