Guide Docker : Dockeriser une application Nodejs Express sur Ubuntu 18.04

Docker est un projet open-source qui fournit une plateforme ouverte aux développeurs et aux sysadmins pour construire, empaqueter et exécuter des applications n’importe où sous forme de conteneur léger. Docker automatise le déploiement d’applications à l’intérieur de conteneurs logiciels.

Nodejs est un environnement d’exécution JavaScript open source. C’est un run-time multiplateforme, qui peut être installé sur Linux, Windows, MacOS, FreeBSD, etc. Nodejs est très utile pour créer des applications de serveur et de bureau.

Dans ce tutoriel, je vais te montrer comment créer une image docker pour un projet d’application Nodejs Express existant dans Ubuntu 18.04. Nous apprendrons à dockeriser une application Nodejs, puis nous déploierons l’application en tant que conteneur dans l’environnement docker à l’aide d’un script docker-compose.

Conditions préalables

  • Ubuntu 18.04
  • Privilèges de racine

Ce que nous allons faire

  1. Installe Docker CE
  2. Installer Docker-Compose
  3. Configurer le projet Nodejs Express
  4. Construire le projet
  5. Tester

Étape 1 – Installer Docker CE

Dans ce tutoriel, nous allons installer docker-ce community edition à partir du dépôt de docker. Nous installerons docker-ce community edition et docker-compose qui prend en charge le fichier compose version 3.

Avant d’installer docker-ce, installe les dépendances docker nécessaires à l’aide de la commande apt.

sudo apt install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

Maintenant, ajoute la clé docker et le dépôt en exécutant les commandes ci-dessous.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

Installe Docker

Installe le paquet docker-ce.

sudo apt install docker-ce

Une fois l’installation terminée, démarre le service docker et active-le pour qu’il se lance à chaque fois au démarrage du système.

systemctl start docker
systemctl enable docker

Démarre Docker

Ensuite, nous allons donner à l’utilisateur normal des privilèges pour exécuter et gérer le conteneur docker.

Ajoute un nouvel utilisateur nommé ‘mohammad’ et ajoute-le au groupe docker.

useradd -m -s /bin/bash mohammad
usermod -a -G docker mohammad

Maintenant, connecte-toi en tant qu’utilisateur ‘mohammad’ et exécute docker container hello-world.

su - mohammad
docker run hello-world

Et tu obtiendras le résultat comme indiqué ci-dessous.

Ajoute un utilisateur et teste l'utilisateur

Étape 2 – Installe Docker-Compose

Dans cette étape, nous allons installer docker-compose manuellement à partir du fichier binaire qui peut être téléchargé sur GitHub. Nous allons installer la dernière version de docker-compose qui prendra en charge la compose v3.

Télécharge la dernière version 1.22.0 de docker-compose à l’aide de la commande curl dans le répertoire ‘/usr/local/bin’, puis rends-la exécutable en utilisant chmod.

Exécute les commandes ci-dessous.

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Et la dernière version de docker-compose a été installée, vérifie en exécutant la commande docker-compose ci-dessous.

docker-compose version

Voici le résultat.

Installe Docker Compose

Étape 3 – Configurer le projet Nodejs Express

Dans cette section, nous allons configurer l’environnement de l’application Nodejs. Nous utiliserons une application nodejs simple qui peut être générée à l’aide du ‘express-generator’.

Connecte-toi à l’utilisateur ‘mohammad’.

su - mohammad

Crée un nouveau répertoire nommé ‘project’ et accède à celui-ci.

mkdir -p project
cd project

Génère maintenant une application nodejs simple de type hello-word à l’aide de la commande ‘express’ ci-dessous.

express hakase-app

Remarque :

Assure-toi que nodejs, npm et les paquets ‘express-generator’ ont été installés sur le système.

Et tu obtiendras l’application nodejs express simple dans le répertoire ‘hakase-app’.

Installe le projet Nodejs Express

Ensuite, nous allons construire notre image docker personnalisée pour l’application nodejs ‘hakase-app’.

Dans le répertoire ‘project’, crée un nouveau ‘Dockerfile’ à l’aide de vim.

vim Dockerfile

Colle-y la configuration de l’image docker suivante.

FROM node:8.11.4-alpine

RUN mkdir -p /src
RUN npm install express-generator -g

WORKDIR /src
ADD hakase-app/package.json /src/package.json
RUN npm install

EXPOSE 3000
CMD node hakase-app/bin/www

Sauvegarde et quitte.

Utilise npm pour installer l'application

Nous créons une nouvelle image docker personnalisée pour notre application nodejs avec les spécifications ci-dessous.

  • L’image personnalisée est basée sur l’image officielle de nodejs 8.11.4 version alpine.
  • Nous créons un nouveau répertoire pour notre projet ‘/src’.
  • Installe le ‘express-generator’ sur l’image personnalisée.
  • Ajoute le fichier ‘package.json’ qui contient le profil de l’application et les paquets nécessaires au répertoire ‘/src’.
  • Installe tous les paquets nodejs nécessaires au projet, en fonction du fichier ‘package.json’.
  • Exporte le port 3000 avec la commande de démarrage par défaut ‘node hakase-app/bin/www’.

Ensuite, nous allons construire l’image personnalisée basée sur le script docker-compose.

Crée un nouveau fichier yml ‘docker-compose.yml’ en utilisant vim.

vim docker-compose.yml

Colle-y la configuration suivante.

version: '3'

services:

  hakase-app:
    build: .
    volumes:
      - ./hakase-app:/src/hakase-app
    ports:
      - "3000:3000"
    restart: always

Sauvegarde et quitte.

Crée le fichier yml de docker compose

Nous créons un nouveau service docker nommé ‘hakase-app’, et en même temps nous construisons l’image docker personnalisée basée sur le ‘Dockerfile’ dans le répertoire du projet et montera automatiquement les fichiers de l’application hakase-app.

L’installation de Nodejs Express est terminée.

Étape 4 – Construis et exécute le projet

Connecte-toi en tant qu’utilisateur ‘mohammad’ et va dans le répertoire ‘project’.

su - mohammad
cd project/

Construis l’image et crée le service docker hakase-app à l’aide de la commande docker-compose ci-dessous.

docker-compose build

Maintenant, tu obtiendras le résultat comme indiqué ci-dessous.

Construis le projet docker

Et quand il est terminé, exécute le service docker ‘hakase-app’.

docker-compose up -d

Tu obtiendras le résultat suivant.

Utilise docker-compose up

L’image docker personnalisée pour notre application Nodejs a été créée, et le service docker hakase-app est opérationnel.

Étape 5 – Test

Montre l’image docker disponible sur le serveur.

docker-compose images
docker images

Montre l'image docker disponible

Une nouvelle image docker personnalisée pour notre application Nodejs a été créée.

Montre le service docker en cours d’exécution.

docker-compose ps
docker ps

Montre le service docker en cours d'exécution

L’application Nodejs est en marche sur le port hôte 3000.

Ouvre le navigateur Web et tape l’adresse IP du serveur avec le port.

http://10.0.15.2:3000/

Et tu obtiendras la page express simple.

La page fonctionne

La mise sous Docker de l’application Nodejs Express sur Ubuntu 18.04 a été effectuée avec succès.

Référence

Vous aimerez aussi...