我在 Mac OS X + Docker Machine + Docker Compose 上开发 Rails 4 应用程序有相当多的经验,但是 Rails 5 在开发环境中缓存文件的方式发生了一些变化(目前正在使用 RC1 进行测试)。
启动应用程序后docker-compose up
,应用程序在开发模式下正常运行。
但是,如果我对控制器或模型进行更改,我可以将其反映在应用程序中的唯一方法是停止服务器并重新启动它。
现在,当我需要更改控制器或模型时,我的工作流程看起来像这样:
- 更改控制器/模型类。
- 停止服务器
Ctrl + C
.
- 启动服务器备份
docker-compose up
.
- 等待服务器启动。
- 运行我在浏览器中运行的任何内容。
至少可以说,需要执行步骤 2-4 很烦人,这不是我在 Rails 4 中习惯的。
我更进一步,使用以下命令卸载了 Spring拆卸说明,但我仍然得到相同的行为。
我还搜索了我可以找到的任何设置config/environments/development.rb
与 Rails 运行时对模型和控制器类的铁腕控制有关,但我找不到任何东西。 (我认为它确实想要依靠监视文件系统来选择性地加载更改,并且不会从 Mac 上的更改到 VirtualBox 中获取某些内容。)
我可以尝试什么其他想法吗?或者是否有任何与这种更积极的缓存工作方式相关的新设置?
我正在使用 Rails 5 rc1。
Rails 5 对代码重新加载引入了一些“改进”,但它似乎不适用于 OS X 上的 Docker。
So in config/environments/development.rb
,我替换了
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
with
config.file_watcher = ActiveSupport::FileUpdateChecker
看来对于 ActiveSupport::EventedFileUpdateChecker 文件观察器,docker-machine 共享文件不会发生更改事件
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)