Als ich Rails mit Docker entwickelte, trat plötzlich der folgende Fehler auf und ich konnte die App nicht öffnen.
Wenn Sie sich die Fehleranweisung ansehen, heißt es zunächst: "Autoprefixer unterstützt Node v4.8.2 nicht. Aktualisieren Sie es." Und übersetzt: "Autoprefixer unterstützt Node v4.8.2 nicht. Bitte aktualisieren." . ".
Wenn ich die Version von Node.js überprüfe, indem ich den folgenden Befehl ausführe, scheint es v4.8.2 zu sein, wie in der Fehleranweisung gezeigt.
docker-compose run app nodejs -v
v4.8.2
Bei einer Untersuchung stellte ich fest, dass Bootstrap die Ursache war. Im Bootstrap-Quellcode wird das Herstellerpräfix nicht absichtlich beschrieben, und alles bleibt einem Modul namens Autoprefixer überlassen. Dieses Modul akzeptiert keine Node.js-Version v.4.8.2.
Sobald Sie die Ursache kennen, kümmern Sie sich einfach darum! Das Ändern der Version von Node.js im Container sollte das Problem lösen ...
Das Betriebssystem, aus dem der Rails-Container besteht, ist Debian Linux, und Sie können das Repository (Software-Erfassungsquelle) hinzufügen, das vom Befehl apt-get des Debian-Paketverwaltungsbefehls "apt" verwendet wird. Fügen Sie das Node.js-Repository der Version 10 vor dem im Dockerfile beschriebenen apt-get von Node.js hinzu.
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
Dadurch wird Version 10 von Node.js installiert. Wenn der Container ausgeführt wird, stoppen Sie ihn, erstellen Sie ihn neu, ohne den Cache zu verwenden, und starten Sie ihn dann.
docker-compose stop
docker-compose build --no-cache
docker-compose up -d
Der Anwendungsbildschirm wurde normal mit der oben genannten Unterstützung angezeigt.
Ich bin glücklich.
Recommended Posts