Lorsque je développais Rails avec Docker, l'erreur suivante s'est soudainement produite et je n'ai pas pu ouvrir l'application.
Tout d'abord, si vous regardez l'énoncé d'erreur, il est dit "Autoprefixer ne prend pas en charge Node v4.8.2. Mettez à jour.", Et une fois traduit, "Autoprefixer ne prend pas en charge Node v4.8.2. Veuillez mettre à jour." . ".
Lorsque je vérifie la version de Node.js en exécutant la commande suivante, il semble que ce soit v4.8.2 comme indiqué dans la déclaration d'erreur.
docker-compose run app nodejs -v
v4.8.2
Après enquête, j'ai trouvé que Bootstrap était la cause. Dans le code source de Bootstrap, le préfixe du fournisseur n'est pas intentionnellement décrit et tout est laissé à un module appelé Autoprefixer, et ce module n'accepte pas la version v.4.8.2 de Node.js.
Une fois que vous connaissez la cause, traitez-la! Changer la version de Node.js dans le conteneur devrait le résoudre ...
Le système d'exploitation qui compose le conteneur Rails est debian Linux, et vous pouvez ajouter le référentiel (source d'acquisition de logiciel) utilisé par la commande apt-get de la commande de gestion de paquet debian "apt". Ajoutez le référentiel Node.js version 10 avant l'apt-get Node.js décrit dans le Dockerfile.
Dockerfile
+ RUN curl -sL https://deb.nodesource.com/setup_10.x | bash -
RUN apt-get update -qq && \
apt-get install - y build-essential \
libpq-dev \
nodejs
Cela installera la version 10 de Node.js. Si le conteneur est en cours d'exécution, arrêtez-le, reconstruisez-le sans utiliser le cache, puis démarrez-le.
docker-compose stop
docker-compose build --no-cache
docker-compose up -d
L'écran de l'application était affiché normalement avec le support ci-dessus.
Je suis heureux.
Recommended Posts