Dockerized Rails 5 RC1应用程序不能获取正在开发的控制器和模型的更新
我在Mac OS X + Docker Machine + Docker Compose上开发Rails 4应用程序的经验相当丰富,但Rails 5在开发环境(目前正在用RC1testing)中caching文件的方式发生了一些变化。
在用docker-compose up
启动应用程序docker-compose up
,应用程序以开发模式正常运行。
但是,如果我对控制器或模型进行更改,那么我可以在应用程序中反映的唯一方法是停止服务器并将其启动。
所以现在当我需要对控制器或模型进行更改时,我的工作stream看起来像这样:
- 改变控制器/模型类。
- 用
Ctrl + C
停止服务器。 - 用
docker-compose up
启动服务器备份docker-compose up
。 - 等待服务器启动。
- 运行我在浏览器中运行的任何东西。
至less可以说,需要做2-4步是烦人的,而不是我习惯于Rails 4的。
我更进一步,并使用删除说明卸载Spring,但我仍然得到相同的行为。
我还search了在config/environments/development.rb
可以find的有关Rails运行时对模型和控制器类的控制权的设置,但是我找不到任何东西。 (我假设它真的想要依靠观看文件系统来select性地加载更改,而不是从Mac到VirtualBox的更改中拾取某些东西。)
任何其他的想法,我可以尝试吗? 还是有什么新的设置有关如何更积极的caching工作?
我正在使用Rails 5 rc1。
Rails 5引入了对代码重新加载的一些“改进”,但它似乎不适用于OS X上的Docker。
所以在config/environments/development.rb
,我replace了
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
同
config.file_watcher = ActiveSupport::FileUpdateChecker
对于ActiveSupport :: EventedFileUpdateChecker文件观察器来说,docker-machine共享文件不会发生更改事件