ノーバグノーライフ

細々と記事書いていきます!!

laradockでnpm install時にpythonが見つからないエラーの解決方法

概要

laradock,laravel5.7でnpm installを実行した際にpythonが見つからずエラーが発生したので、
その時対応した方法を記載します。

目次

環境

  • docker
  • docker-compose
  • laradock
  • laravel5.7

npm installで発生したエラー

Can't find Python executable "python", you can set the PYTHON env variable.が発生した。

$ docker-compose exec workspace npm install
/...
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack     at PythonFinder.failNoPython (/var/www/node_modules/node-gyp/lib/configure.js:484:19)
gyp ERR! stack     at PythonFinder.<anonymous> (/var/www/node_modules/node-gyp/lib/configure.js:406:16)
gyp ERR! stack     at F (/var/www/node_modules/which/which.js:68:16)
gyp ERR! stack     at E (/var/www/node_modules/which/which.js:80:29)
gyp ERR! stack     at /var/www/node_modules/which/which.js:89:16
gyp ERR! stack     at /var/www/node_modules/isexe/index.js:42:5
gyp ERR! stack     at /var/www/node_modules/isexe/mode.js:8:5
gyp ERR! stack     at FSReqCallback.oncomplete (fs.js:161:21)
gyp ERR! System Linux 4.9.93-linuxkit-aufs

エラーの原因

workspaceにpythonが入っていなかったため、npm install でエラーが発生した。

workspaceにpythonを入れて対応

laradockのworkspaceにpythonを入れる場合は、laradockの.envファイルを修正します。 WORKSPACE_INSTALL_PYTHONをtrueにしてください。

$ vi laradock/.env

WORKSPACE_INSTALL_PYTHON=true

動作確認

$ docker-compose up -d --build nginx mysql workspace
$ docker-compose exec workspace npm install

  added 76 packages from 101 contributors and audited 11708 packages in 204.251s
  found 0 vulnerabilities

これで正常にnpm installが完了しました。