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