Dockerのコンテナ内にElixirやPhoenixFrameworkをインストールして
docker-compose run web mix phx.new sample
のような感じでDockerにマウントしたディレクトリに新しくプロジェクトを作ると、
下のメッセージが表示されました。
We are almost there! The following steps are missing:
$ cd sample
$ cd assets && npm install && node node_modules/webpack/bin/webpack.js --mode development
nodeのインストールを失敗しているので、手動でインストールする必要があるみたいですが、
とりあえず、このコマンドを実行せずにプロジェクトのサーバーを起動すると、
やはり画像が表示されず、崩れた画面が表示されました。
サーバーのログにも下のようなエラーが出力されてたので、npm install
が成功しないと、
まともに表示できないみたいです。
[error] Could not start node watcher because script "/app/sample/assets/node_modules/webpack/bin/webpack.js" does not exist. Your Phoenix application is still running, however assets won't be compiled. You may fix this by running "cd assets && npm install".
原因を調べてみたところDockerでマウントしたディレクトリでnpm install
するとエラーになるみたいです。
npm install
する時にシンボリックリンクを作成しようとして、失敗しているようでした。
マウントしていないディレクトリでnpm install
するか、
ホストでnodeをインストールしてnpm install
する必要がありそうです。