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 :
FROM node:9-alpine RUN apk add --update \ python \ python-dev \ py-pip \ build-base \ git \ openssh-client \ && pip install virtualenv \ && rm -rf /var/cache/apk/* RUN apk --no-cache add pkgconfig autoconf automake libtool nasm build-base zlib-dev RUN npm install -g gulp WORKDIR /app 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 :
node: build: docker/docker-node volumes: - ./:/app tty: true
Dans mon exemple, le dockerfile est situé dans le dossier docker/docker-node.
Construction de l'image et lancement des services
# construction de l'image docker-compose build # Lancement des conteneurs docker-compose up -d
Pour ensuite jouer avec node et gulp :
# Installation des dépendances node docker-compose exec node npm install # lancement de la tâche « build » 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