Приложение Dockerized Rails 5 RC1 не получает обновления для контроллеров и моделей в разработке

У меня довольно большой опыт разработки приложений на Rails 4 для Mac OS X + Docker Machine + Docker Compose, но кое-что изменилось с тем, как 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.)

Любые другие идеи о том, что я могу попробовать? Или есть какие-то новые настройки, связанные с тем, как работает более агрессивное кэширование?

1 ответ

Я использую Rails 5 rc1.

Rails 5 представил некоторые "улучшения" в перезагрузке кода, но, похоже, он не работает с Docker в OS X.

Так в config/environments/development.rbЯ заменил

config.file_watcher = ActiveSupport::EventedFileUpdateChecker

с

config.file_watcher = ActiveSupport::FileUpdateChecker

Похоже, что для наблюдателя файлов ActiveSupport::EventedFileUpdateChecker событие изменения не происходит для общих файлов докер-машины

Другие вопросы по тегам