Dockerized Rails 5 RC1 应用程序未获取开发中控制器和模型的更新

Dockerized Rails 5 RC1 application not picking up updates to controllers and models in development

我在 Mac OS X + Docker Machine + Docker 上开发 Rails 4 个应用程序有相当多的经验Compose,但是 Rails 5 在开发环境中缓存文件的方式有所改变(目前正在使用 RC1 进行测试)。

使用docker-compose up启动应用后,应用在开发模式下运行正常

但是,如果我对控制器或模型进行了更改,我可以将其反映在应用程序中的唯一方法是停止服务器并重新启动它。

所以现在当我需要对控制器或模型进行更改时,我的工作流程看起来像这样:

  1. 更改为 controller/model class。
  2. Ctrl + C停止服务器。
  3. 使用 docker-compose up 启动服务器备份。
  4. 等待服务器启动。
  5. 运行 无论我在浏览器中是什么 运行。

至少可以说,需要执行步骤 2-4 很烦人,这不是我在 Rails 4.

中习惯的做法

我更进一步,使用 Removal instructions 卸载了 Spring,但我仍然遇到相同的行为。

我还在 config/environments/development.rb 中搜索了与 Rails 运行时对模型和控制器 class 的铁腕控制相关的任何设置,但我找不到任何事物。 (我假设它真的想要依赖于监视文件系统以便有选择地加载更改,并且没有从 Mac 到 VirtualBox 的更改中获取某些东西。)

关于我可以尝试的任何其他想法?或者是否有与这种更积极的缓存如何工作相关的任何新设置?

我正在使用 Rails 5 rc1。

Rails 5 介绍了一些 "improvements" 代码重新加载,但它似乎不适用于 OS X 上的 Docker。

所以在config/environments/development.rb中,我替换了

config.file_watcher = ActiveSupport::EventedFileUpdateChecker

config.file_watcher = ActiveSupport::FileUpdateChecker

似乎对于 ActiveSupport::EventedFileUpdateChecker 文件观察器,docker 机共享文件不会发生更改事件