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.rb
lugar 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.rb
archivo:Debe configurar los valores correctos de env en un
.env
archivo, sin seguimiento en el control de versiones.En
docker-compose.yml
usted 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
.env
no 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_file
y de tu respuesta también. 👍environment
docker-compose.yml
DOCKERIZED
variable -env. Docker crea un/.dockerenv
archivo, que puede verificar:File.file?('/.dockerenv') => true
y está dentro de un contenedor.Descubrimiento automático dentro de su
config/development.rb
Por 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_ips
y 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/cgroup
y permitir su IP de host (tanto paraweb_console
comobetter_errors
). Añadir a tuconfig/environments/development.rb
fuente
fuente
Para mí,
whitelisted_ips
no parecía funcionar en un nuevo proyecto. El archivo Léame indica que la entrada de configuración correspondiente se supone que espermissions
ahora: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.1
que 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-console
en 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