Students : DIALLO Samba & DIOP Mouhamed
Node.js et NPM - Application Exemple
Ce dossier contient:
app.js: Une application Node.js “Hello, World” qui écoute sur le port 8080.package.json: Configuration de build NPM pour l’application Node.js.Dockerfile: Instructions pour packager l’application Node.js comme image Docker.
Structure du Projet
sample-app/
├── app.js # Application Node.js simple
├── package.json # Dépendances et scripts NPM
├── Dockerfile # Configuration Docker
├── build-docker-image.sh # Script de construction d'image
└── run-in-docker.sh # Script d'exécution Docker
Fichiers Téléchargeables
Utilisation Locale
Installation des dépendances
npm installExécution de l’application
node app.jsL’application sera disponible sur http://localhost:8080
Utilisation avec Docker
Construction de l’image
chmod +x build-docker-image.sh
./build-docker-image.shOu manuellement:
docker build -t sample-app:latest .Exécution du conteneur
chmod +x run-in-docker.sh
./run-in-docker.shOu manuellement:
docker run -d -p 8080:8080 --name sample-app sample-app:latestTest de l’application
curl http://localhost:8080Détails Techniques
app.js
Application Node.js minimale utilisant le module HTTP natif. Répond “Hello, World!” à toutes les requêtes sur le port 8080.
package.json
Définit les métadonnées du projet et les dépendances NPM (aucune dépendance externe dans cette version simple).
Dockerfile
Image multi-stage pour optimiser la taille:
- Base: Node.js officielle
- Copie des fichiers sources
- Installation des dépendances
- Exposition du port 8080
- Commande de démarrage
Concepts Clés
- Application Node.js: Serveur HTTP simple sans framework
- Conteneurisation: Empaquetage de l’application avec ses dépendances
- Port Mapping: Exposition du port 8080 du conteneur vers l’hôte
- Scripts Shell: Automatisation des tâches Docker courantes
Évolution
Cette application de base sert de fondation pour:
- sample-app-express: Version avec Express.js
- sample-app-express-with-tests: Version avec tests Jest
- Déploiements dans des environnements de production