2016-05-10 22 views
6

Ho un bel po 'di esperienza nello sviluppo di app Rails 4 su Mac OS X + Docker Machine + Docker Compose, ma qualcosa è cambiato con il modo in cui Rails 5 sta memorizzando nella cache file nell'ambiente di sviluppo (attualmente in fase di test con RC1).Dockerized Rails 5 Applicazione RC1 che non rileva aggiornamenti per controller e modelli in fase di sviluppo

Dopo l'avvio dell'applicazione con docker-compose up, l'applicazione viene eseguita normalmente in modalità di sviluppo.

Ma se apporto una modifica a un controller o modello, l'unico modo per ottenere quello riflesso nell'applicazione è arrestare il server e riavviarlo.

Così ora il mio flusso di lavoro sembra qualcosa di simile quando ho bisogno di fare un cambiamento ad un controller o modello: cambiamento

  1. Marchio di classe controller/modello.
  2. Arresta server con Ctrl + C.
  3. Avviare il server con docker-compose up.
  4. Attendi che il server si avvii.
  5. Eseguire qualsiasi cosa stavo correndo nel browser.

a dir poco, la necessità di fare i passi 2-4 è fastidioso e non quello che sono abituato a da Rails 4.

sono andato un passo ulteriore e disinstallato primavera utilizzando il Removal instructions, ma io ancora ottenere lo stesso comportamento.

Ho anche cercato le impostazioni che ho trovato in config/environments/development.rb relative all'impugnatura del ferro del runtime di Rails sulle classi del modello e del controller e non sono riuscito a trovare nulla. (Suppongo che voglia veramente fare affidamento sul file system per caricare selettivamente le modifiche, e qualcosa non viene prelevato da una modifica su Mac a VirtualBox.)

Qualche altra idea su cosa posso provare? O ci sono nuove impostazioni relative a come funziona questa cache più aggressiva?

+0

Eventuali notizie su questo? Anche con config.file_watcher = ActiveSupport :: FileUpdateChecker niente per me. Rails non aggiorna il codice fino a quando non si riavvia con docker-compose up. Come risolvere, anche con soluzione alternativa? –

+0

Ottima domanda. Sto avendo esattamente lo stesso problema, Rails5, docker-compose e OSX Sierra.Nessuna modifica di controller/locale, ma le visualizzazioni erb per qualche motivo sono in fase di aggiornamento. La scorsa settimana su un'app Rails4 non ha riscontrato il problema. – unmultimedio

risposta

4

Utilizzo Rails 5 rc1.

Rails 5 ha introdotto alcuni "miglioramenti" al codice ricarica, ma non sembra di lavorare con Docker su OS X.

Quindi, in config/environments/development.rb, ho sostituito

config.file_watcher = ActiveSupport::EventedFileUpdateChecker

con

config.file_watcher = ActiveSupport::FileUpdateChecker

sembra che per l'ActiveSupport :: Eva ntedFileUpdateChecker watcher di file, l'evento di modifica non si verifica per i file condivisi della macchina docker

+0

Stai utilizzando la versione beta di Docker per Mac o l'installazione della Docker Machine tramite VirtualBox? Mi sembra di avere meno problemi con questo dopo aver disabilitato Spring con il nuovo Docker per Mac, che ha un modo migliore di montare il volume dall'host alla VM guest. –

+0

Questo non fornisce una risposta alla domanda. Una volta che hai [reputazione] sufficiente (http://stackoverflow.com/help/whats-reputation) sarai in grado di [commentare qualsiasi post] (http://stackoverflow.com/help/privileges/comment); invece [fornisci risposte che non richiedono chiarimenti da parte del richiedente] (http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-, invece). - [Dalla recensione] (/ recensione/post di bassa qualità/12929922) –

+0

@michalmuskala Non sono d'accordo con quello che stai dicendo. –