15

Mac OS X + Docker Machine + Docker Compose で Rails 4 アプリを開発した経験はかなりありますが、Rails 5 が開発環境でファイルをキャッシュする方法が変わっています (現在 RC1 でテスト中)。

でアプリケーションを起動するとdocker-compose up、アプリケーションは開発モードで正常に実行されます。

しかし、コントローラーまたはモデルに変更を加えた場合、それをアプリケーションに反映させる唯一の方法は、サーバーを停止して再起動することです。

したがって、コントローラーまたはモデルに変更を加える必要がある場合、ワークフローは次のようになります。

  1. コントローラー/モデル クラスに変更を加えます。
  2. でサーバーを停止しますCtrl + C
  3. でサーバーのバックアップを開始しますdocker-compose up
  4. サーバーが起動するのを待ちます。
  5. ブラウザで実行していたものを実行します。

控えめに言っても、手順 2 ~ 4 を実行する必要があるのは煩わしく、Rails 4 で慣れていることではありません。

さらに一歩進んで、削除手順を使用して Spring をアンインストールしましたが、それでも同じ動作が得られます。

config/environments/development.rbまた、モデル クラスとコントローラー クラスに対する Rails ランタイムの鉄のグリップに関連する設定を検索しましたが、何も見つかりませんでした。(変更を選択的にロードするためにファイルシステムの監視に本当に依存したいと思いますが、Macでの変更からVirtualBoxへの変更から何かが取得されていません。)

私が試すことができる他のアイデアはありますか?または、このより積極的なキャッシングの仕組みに関連する新しい設定はありますか?

4

1 に答える 1

16

Rails 5 rc1 を使用しています。

Rails 5 では、コードのリロードにいくつかの「改善」が導入されましたが、OS X 上の Docker では機能しないようです。

だからconfig/environments/development.rb、私は置き換えました

config.file_watcher = ActiveSupport::EventedFileUpdateChecker

config.file_watcher = ActiveSupport::FileUpdateChecker

ActiveSupport::EventedFileUpdateChecker ファイル ウォッチャーの場合、docker-machine 共有ファイルに対して変更イベントが発生しないようです

于 2016-07-07T07:02:44.173 に答える