DockerでAdminLTEのコンパイルができない

Docker経由でのみAdminLTEのコンパイルが失敗する。

docker-compose run web bin/webpack

docker-compose run web bin/webpack-dev-server

ができない。

具体的にはこんなエラーになる。

[4/4] Building fresh packages...
[1/4] ⠄ core-js
[2/4] ⠄ node-sass
[4/4] ⠄ admin-lte
error /myapp/node_modules/admin-lte: Command failed.
Exit code: 127
Command: npm run plugins
Arguments: 
Directory: /myapp/node_modules/admin-lte

エラーログをもうちょい追ってみるとこんなエラーが出ていた。

 ERROR in ./app/javascript/stylesheets/admin/application.scss (./node_modules/css-loader/dist/cjs.js??ref--4-1!./node_modules/postcss-loader/src??ref--4-2!./node_modules/sass-loader/dist/cjs.js??ref--4-3!./app/javascript/stylesheets/admin/application.scss)
webpacker_1  | Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
webpacker_1  | Error: Missing binding /myapp/node_modules/node-sass/vendor/linux-x64-64/binding.node
webpacker_1  | Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 10.x
webpacker_1  | 
webpacker_1  | Found bindings for the following environments:
webpacker_1  |   - Linux 64-bit with Node.js 10.x

nodeが10系になってる。期待してたのは12系だ。ローカルではコンパイルが通ってたけどdockerでは通らなかったのはこれが濃厚。

Dockerfileにこいつを追記したら解決した。

RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - \