kawasin73 / rails_docker_template

Docker template for Rails app or Rails + Webpacker app development.
80 stars 34 forks source link

webpacker setting #4

Closed kawasin73 closed 5 years ago

kawasin73 commented 5 years ago

to rails container

    environment:
      - "WEBPACKER_DEV_SERVER_HOST=webpack"

to webpack container

    environment:
      - "WEBPACKER_DEV_SERVER_HOST=0.0.0.0"
kawasin73 commented 5 years ago

done https://github.com/kawasin73/rails_docker_template/commit/b2abb579601c7e2a05bc12316f3151330590b70b

kawasin73 commented 5 years ago

rails server を実行するコンテナには WEBPACKER_DEV_SERVER_HOST=webpack を、bin/webpack-dev-server を実行するコンテナには、WEBPACKER_DEV_SERVER_HOST=0.0.0.0 を設定するように修正しています。

https://github.com/kawasin73/rails_docker_template/commit/b2abb579601c7e2a05bc12316f3151330590b70b

webpacker ではサーバープロセスは webpack-dev-server が起動しているかどうかを TCP コネクションが確立できるかどうかで認識しています。( https://github.com/rails/webpacker/blob/9e671a3ebe368cfdc624309a9b4a55e998f87186/lib/webpacker/dev_server.rb#L14-L23 ) webpack-dev-server が起動している場合はアセットファイルを webpack-dev-server から配信するようにレスポンス内のアドレスを設定し、起動していない場合はコンパイル済みの静的ファイルを配信するようにアドレスを設定します。

rails コンテナのサーバーから webpack コンテナの IP アドレスを知るために rails コンテナには WEBPACKER_DEV_SERVER_HOST=webpack を設定します。

一方、webpacker コンテナには、rails コンテナとホストマシンの両方からのリクエストを処理する必要があるため、ホスト名に 0.0.0.0 を設定しています。

https://qiita.com/kawasin73/items/b8b092e9b763387c6ba8#comment-26d0e5ef7bfbcbb1fba4