Estoy usando Ubuntu / vagrant como mi entorno de desarrollo. Recibo estos mensajes en la consola de rails:
Started GET "/assets/home-fcec5b5a277ac7c20cc9f45a209a3bcd.js?body=1" for 10.0.2.2 at 2015-04-02 15:48:31 +0000
Cannot render console from 10.0.2.2! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
¿Es posible deshabilitar esos mensajes "no se puede procesar ..." o permitirlos de alguna manera?
ruby-on-rails
vagrant
Leandro França
fuente
fuente

config/environments/development.rb, @ydaetskcoRENV.fetch('SSH_CLIENT', '127.0.0.1').split(' ').first. En general, esto probablemente será 10.0.2.2, pero debería reflejar cualquier configuración de red activa (vagabunda o no, realmente, que por supuesto puede o no ser lo que desea).config.web_console.whitelisted_ips. El segundo son los mensajes de error que está viendo en sus registros. Esto es controlado porconfig.web_console.whiny_requests. Finalmente, y este fue el problema que enfrenté, el error Ip de la lista blanca se debió a que los rieles intentaban representar la consola como un mecanismo predeterminado para manejar otro error. Por lo tanto, solucionar el otro error o cambiar el valor predeterminado también debería ayudar.Puede incluir en la lista blanca direcciones IP individuales o redes completas.
Digamos que quieres compartir tu consola
192.168.0.100. Puedes hacerlo:Si desea incluir en la lista blanca toda la red privada, puede hacer lo siguiente:
Si ya no quieres ver este mensaje, configura esta opción en falso:
Ten cuidado con lo que deseas, porque podrías obtenerlo todo
Esto es probablemente solo para fines de desarrollo, por lo que es posible que prefiera colocarlo debajo en
config/environments/development.rblugar deconfig/application.rb.fuente
Codificar una IP en un archivo de configuración no es bueno. ¿Qué hay de otros desarrolladores? ¿Qué pasa si la ip cambia?
La configuración relacionada con Docker no debe filtrarse en la aplicación rails siempre que sea posible. Es por eso que debe usar env vars en el
config/environments/development.rbarchivo:Debe configurar los valores correctos de env en un
.envarchivo, sin seguimiento en el control de versiones.En
docker-compose.ymlusted puede inyectar env vars de este archivo conenv_file:Según el feebdack recibido en los comentarios, también podemos construir una solución sin variables de entorno:
Dejaré las soluciones con env var para fines de aprendizaje.
fuente
.envno debe registrarse en el control de versiones, cualquiera puede anularlo en su propio entorno. La información del acoplador se filtra de todos modos en la aplicación, solo minimizamos el daño aquí :)env_filey de tu respuesta también. 👍environmentdocker-compose.ymlDOCKERIZEDvariable -env. Docker crea un/.dockerenvarchivo, que puede verificar:File.file?('/.dockerenv') => truey está dentro de un contenedor.Descubrimiento automático dentro de su
config/development.rbPor supuesto, podría necesitar agregar
Dentro de tu archivo.
fuente
config.web_console.whitelisted_ips = Socket.ip_address_list.select(&:ipv4?).map{ |addrinfo| IPAddr.new(addrinfo.ip_address).mask(24) }config.web_console.whitelisted_ips = ['10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']partir de la respuesta de @kwerle ?Cualquier persona en cualquiera de mis redes privadas es bienvenida.
Corro en un contenedor acoplable y no me importa qué red quiere usar esta semana.
configuración / entornos / desarrollo.rb agregar línea
fuente
Para el entorno de desarrollo: detecte si es docker, luego determine la dirección IP y póngala en la lista blanca
Para mí, esto imprime lo siguiente y la advertencia desaparece 🎉
Mi solución fue combinar
fuente
undefined method <<' for nil:NilClass (NoMethodError). Así que creé una variable llamadawhitelisted_ips = [ ], la usé dentro del ciclo agregando los ips, y después del ciclo: ¡config.web_console.whitelisted_ips = whitelisted_ipsy luego funcionó para mí! ¡Así que gracias!Si está utilizando Docker, lo más probable es que no quiera introducir nuevas variables ENV ni codificar su dirección IP específica.
En su lugar, es posible que desee comprobar que está utilizando Docker
/proc/1/cgroupy permitir su IP de host (tanto paraweb_consolecomobetter_errors). Añadir a tuconfig/environments/development.rbfuente
fuente
Para mí,
whitelisted_ipsno parecía funcionar en un nuevo proyecto. El archivo Léame indica que la entrada de configuración correspondiente se supone que espermissionsahora:https://github.com/rails/web-console/blob/master/README.markdown
fuente
Si ejecuta su sitio localmente (en el host), generalmente funciona, ya
127.0.0.1que siempre está permitido . Pero si va a colocar su sitio en un contenedor (no en producción, localmente), es posible que desee agregar esto aconfig/environments/development.rb:PD: La mayoría de las veces quieres quejarse (no quieres hacerlo
config.web_console.whiny_requests = false). Porque podría significar que estásweb-consoleen producción (que no deberías hacer).fuente
Si desea dejar de ver este mensaje de error, puede agregar esta línea en development.rb
fuente