herokuでdockerが使えるようになったので、触ってみた。
git clone https://github.com/heroku/node-js-getting-started.git
heroku plugins:install heroku-docker
heroku docker:init
heroku docker:start
簡単。
で、npmモジュールを追加しようと思って、以下を実行した。
heroku docker:exec npm install request --save
そうするとこんなエラー。
Error: EACCES, mkdir '/app/src/node_modules/express'
パーミッションがないっぽい。
解決策としては、ホスト側で生成されているnode_modulesディレクトリを削除すれば良い。
heroku docker:exec
で実行したコマンドによる変更は、ホスト側にも反映されるので、npm install
を実行するとnode_modulesディレクトリが生成される。これがコンテナ上にCOPYされていて、docker上のユーザが触れなくなってたみたい。