Lancer des tâches Gulp dans un conteneur docker NodeJS

Posté le Mardi 19 novembre 2019 - 14:27
Dernière mise à jour le Mercredi 20 novembre 2019 - 12:41

Je ne m'occupe pas du développement front, mais il m'arrive d'avoir à réaliser une modification rapide de CSS ou JS sur un projet qui peut avoir parfois quelques années, (une éternité dans l'écosystème javascript). Et la version de nodejs la plus récente n'est parfois plus compatible avec le projet ou d'autres joyeusetés.

Depuis la dernière réinstallation de mon système, plus de nodejs sur ma machine, je ne passe plus que part des conteneurs docker exécuter les taches gulp, avec chaque fois la version de nodejs qui va bien.

Tout commence avec la définition de mon image via un Dockerfile :

  1. FROM node:9-alpine
  2.  
  3. RUN apk add --update \
  4. python \
  5. python-dev \
  6. py-pip \
  7. build-base \
  8. git \
  9. openssh-client \
  10. && pip install virtualenv \
  11. && rm -rf /var/cache/apk/*
  12.  
  13. RUN apk --no-cache add pkgconfig autoconf automake libtool nasm build-base zlib-dev
  14.  
  15. RUN npm install -g gulp
  16.  
  17. WORKDIR /app
  18. RUN npm set progress=false

La première ligne est à modifier en fonction de la version de nodejs que vous souhaitez, la liste de toutes les version disponible est ici : https://hub.docker.com/_/node

ainsi si on voulait la version 13 de nodejs, la ligne 1 serait alors : FROM node:13-alpine

Deuxième étape ajouter l'image au docker-compose.yml :

  1. node:
  2.   build: docker/docker-node
  3.   volumes:
  4. - ./:/app
  5.   tty: true

Dans mon exemple, le dockerfile est situé dans le dossier docker/docker-node.

Construction de l'image et lancement des services

  1. # construction de l'image
  2. docker-compose build
  3.  
  4. # Lancement des conteneurs
  5. docker-compose up -d

Pour ensuite jouer avec node et gulp :

  1. # Installation des dépendances node
  2. docker-compose exec node npm install
  3.  
  4. # lancement de la tâche « build »
  5. docker-compose exec node gulp build

Et voila, plus besoin de nodejs sur la machine ou de jongler entre les différentes versions.

 

Ajouter un commentaire

Ne sera pas publié

HTML restreint

  • Balises HTML autorisées : <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et les adresses courriel se transforment en liens automatiquement.
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...