☘️

Docker + Rails で開発していてソースコードが即時反映されない時のたったひとつのcoolな答え

2021/05/09に公開

TL;DR

Docker + Rails で開発していてソースコードが即時反映されない

Docker を使わずに開発しているときはそんなことなかったのに、
コンテナで開発し始めてからソースコードが即時反映されない…… そんな悩みにぶつかった人は少なくないんじゃないでしょうか。
rails s しなおせば反映されたりするんだけど不便……

そんな時に見直したいのがこの設定です。

関連記事にも書いてありますが設定自体は簡単で、

config/environments/development.rb
config.file_watcher = ActiveSupport::EventedFileUpdateChecker

config/environments/development.rb
config.file_watcher = ActiveSupport::FileUpdateChecker

とするだけです。

これは何?

詳しくは下記 RubyDoc.info を読んでもらえるとわかりやすいんですが、
ざっくりと

  • ファイルの保存イベントを監視するのか
  • ファイルを追跡して変更を監視するのか

みたいな違いがあります。
なので、コンテナを使って開発しているときにファイルの保存イベントをlistenできない結果
ソースコードが即時反映されない問題が発生するんですね。

それでも反映されない時は

コンテナとホストマシンの内部時間に差があるとうまく動かないことがあるようです。
下記記事参照。

Discussion