首页 > 解决方案 > 文件更改不会反映在 Docker webapp 中

问题描述

我有一个 Rails 应用程序,试图在 Docker 中运行它。我有源代码的绑定挂载,但 Web 服务器没有反映更改。例如编辑 /app/views/layouts/application.html.erb 没有区别。

然后我删除了绑定挂载,并直接在容器中进行了编辑。同样的事情也会发生。我已经删除了浏览器缓存,但每次都会加载旧页面。编辑前后的 inode 是相同的。奇怪的是 - 像重命名整个布局目录这样的剧烈变化会产生影响。

我希望在重新加载页面后立即看到文件更改。从主机运行时,这可以按预期工作,但不能从 docker 运行。

标签: ruby-on-railsdocker

解决方案


正如您在评论中提到的,问题出在(应用程序)服务器端。

Turns out its Rails itself that caches the app in memory - but for prod environment only. Both docker (configured as prod) and host (as dev) is on my local machine, so no other server inbetween. But I did some digging in config/environments/production.rb and set "config.cache_classes = false".


推荐阅读