Maison > interface Web > js tutoriel > le corps du texte

Développement Web dans des conteneurs Docker à l'aide d'Express.js

Patricia Arquette
Libérer: 2024-11-07 15:55:03
original
142 Les gens l'ont consulté

Web Development in Docker Containers Using Express.js

Dans le paysage de développement actuel en évolution rapide, la conteneurisation est apparue comme une approche révolutionnaire pour les développeurs Web, fournissant des environnements cohérents, portables et faciles à gérer. Docker, la plateforme de conteneurisation la plus populaire, permet aux développeurs de créer et de gérer facilement des conteneurs, rendant ainsi le développement et le déploiement plus fluides. La combinaison de Docker avec des frameworks Node.js comme Express.js apporte davantage d'agilité au développement Web, permettant aux développeurs de créer, tester et déployer facilement des applications Web.

Dans cet article, nous explorerons comment configurer et développer une application Express.js dans un conteneur Docker, en nous concentrant sur les avantages qu'elle apporte au développement Web.

Pourquoi utiliser Docker pour le développement Web ?

Docker encapsule les dépendances de l'application dans un conteneur, ce qui signifie :

  • Cohérence entre les environnements : Les conteneurs Docker s'exécutent de la même manière sur n'importe quel système sur lequel Docker est installé, éliminant ainsi les problèmes « ça fonctionne sur ma machine ».
  • Isolement : Docker fournit un environnement isolé pour votre application, garantissant qu'elle n'interfère pas avec d'autres applications.
  • Évolutivité et déploiement : Les conteneurs permettent une mise à l'échelle et un déploiement faciles, ce qui simplifie l'expansion horizontale des applications.

Pour le développement Web à l'aide d'Express.js, Docker garantit que Node.js et toutes les autres dépendances (comme les bases de données ou les bibliothèques) sont correctement configurées dans un environnement distinct du système hôte.

Configuration d'une application Express.js dans Docker

Plongeons dans les étapes requises pour configurer et exécuter une application Express.js dans un conteneur Docker.

Étape 1 : initialiser une application Express.js

Tout d’abord, créez une application Express.js de base. Si vous ne l'avez pas installé globalement, vous pouvez exécuter :

npx express-generator myapp
cd myapp
Copier après la connexion
Copier après la connexion

Cela crée une structure de dossiers de base et quelques fichiers par défaut pour une application Express.js. Ensuite, installez toutes les dépendances nécessaires :

npm install
Copier après la connexion
Copier après la connexion

Étape 2 : écrire un fichier Docker

Un Dockerfile définit l'environnement et les instructions nécessaires pour configurer et exécuter votre application. Voici un exemple de Dockerfile pour une application Express.js :

# Use an official Node.js image as the base
FROM node:latest AS development

# Create and set the working directory inside the container
WORKDIR /app

# Copy package.json and package-lock.json files to the container
COPY package*.json ./

# Install dependencies
RUN npm install

# Copy the entire application code to the container
COPY . .

# Expose the port the app runs on
EXPOSE 3000

# Run the application
CMD ["npm", "start"]
Copier après la connexion
Copier après la connexion

Étape 3 : Créer un fichier Docker Compose (facultatif)

Si votre application dispose de plusieurs services (par exemple, une base de données), docker-compose.yml permet de les définir et de les gérer. Voici un exemple de fichier docker-compose.yml :

services:
  app:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - /app/node_modules
    environment:
      - NODE_ENV=development
Copier après la connexion
Copier après la connexion

Étape 4 : Créer et exécuter le conteneur Docker

Pour créer un conteneur pour votre application, ouvrez un terminal dans le répertoire racine de l'application (où se trouve le Dockerfile) et exécutez :

npx express-generator myapp
cd myapp
Copier après la connexion
Copier après la connexion

Ensuite, pour exécuter le conteneur, utilisez :

npm install
Copier après la connexion
Copier après la connexion

L'application devrait désormais être accessible sur http://localhost:3000.

Étape 5 : Développer avec Live Reloading

Par défaut, Docker ne prend pas en charge le rechargement en direct (où les modifications du code sont automatiquement reflétées). Cependant, vous pouvez y parvenir avec l'aide de nodemon, un outil qui surveille les modifications de fichiers et redémarre automatiquement le serveur.

Tout d'abord, installez nodemon en tant que dépendance de développement :

# Use an official Node.js image as the base
FROM node:latest AS development

# Create and set the working directory inside the container
WORKDIR /app

# Copy package.json and package-lock.json files to the container
COPY package*.json ./

# Install dependencies
RUN npm install

# Copy the entire application code to the container
COPY . .

# Expose the port the app runs on
EXPOSE 3000

# Run the application
CMD ["npm", "start"]
Copier après la connexion
Copier après la connexion

Ensuite, mettez à jour le Dockerfile pour définir NODE_ENV sur development et mettez à jour la commande start :

services:
  app:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - /app/node_modules
    environment:
      - NODE_ENV=development
Copier après la connexion
Copier après la connexion

Ou si vous utilisez docker-compose.yml, vous pouvez y spécifier la commande directement :

docker build -t express-app .
Copier après la connexion

Cette configuration permet le rechargement en direct, ce qui est très bénéfique pendant le développement car cela permet de gagner du temps et d'améliorer la productivité.

Étape 6 : Gérer les dépendances avec les volumes Docker

Pour éviter les problèmes de reconstruction des dépendances à chaque fois, utilisez les volumes Docker pour monter le code source du système de fichiers local dans le conteneur.

Dans docker-compose.yml :

docker run -p 3000:3000 express-app
Copier après la connexion

Cette configuration synchronise votre code entre l'hôte et le conteneur, mais elle ne remplace pas le dossier node_modules.

Étape 7 : Débogage dans Docker

Docker propose diverses options de débogage. Vous pouvez ajouter des indicateurs DEBUG à votre application pour augmenter la verbosité de la journalisation ou utiliser les propres commandes de journalisation et de surveillance de Docker :

npm install --save-dev nodemon
Copier après la connexion

Étape 8 : Dockerisation pour la production

Lors du passage à la production, il existe des étapes supplémentaires d'optimisation, telles que :

  • Utiliser des constructions en plusieurs étapes pour réduire la taille de l'image.
  • Configuration des configurations spécifiques à l'environnement.
  • Ajout de mesures de sécurité, comme la recherche de vulnérabilités. Un exemple de Dockerfile de construction en plusieurs étapes :
# Install nodemon globally
RUN npm install -g nodemon

# Run the application using nodemon
CMD ["nodemon", "bin/www"]
Copier après la connexion

Avantages du développement avec Express.js dans Docker
Développer une application Express.js dans Docker présente des avantages significatifs :

  • Cohérence de la plateforme : Le conteneur Docker standardise votre environnement à toutes les étapes, du développement à la production.
  • Dépendances simplifiées : En encapsulant les dépendances, vous éliminez les installations complexes sur votre machine locale. Mise à l'échelle rapide : les conteneurs vous permettent de faire évoluer les applications horizontalement en déployant des instances supplémentaires. Collaboration sans effort : le partage d'un Dockerfile ou d'un docker-compose.yml garantit que les coéquipiers travaillent dans l'environnement exact. ## Bonnes pratiques
  • Gardez les images Docker petites : Utilisez des builds en plusieurs étapes pour minimiser la taille de l'image et améliorer les performances. Utiliser des variables d'environnement pour la configuration : évitez les configurations codées en dur pour que le conteneur reste indépendant de l'environnement.
  • Exploiter les volumes : Utilisez les volumes Docker pour stocker des données ou synchroniser le code en cours de développement.
  • Automatisez avec CI/CD : Incorporez Docker dans les pipelines CI/CD pour un déploiement cohérent et automatisé dans tous les environnements. ## Conclusion Dockeriser votre application Express.js fournit une solution évolutive et robuste pour le développement Web. En utilisant Docker, vous bénéficiez d'un meilleur contrôle sur les environnements, simplifiez la gestion des dépendances et améliorez la collaboration, autant d'éléments essentiels au développement Web moderne. Que vous travailliez sur une application simple ou sur un système complexe avec plusieurs services, Docker fournit des outils qui peuvent rationaliser votre flux de travail et préparer votre projet à réussir en production.

Démarrez avec Docker et Express.js dès aujourd'hui pour voir comment ils peuvent transformer votre expérience de développement !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!