Estou usando o Ubuntu / vagrant como meu ambiente de desenvolvimento. Estou recebendo essas mensagens no console do 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
É possível desativar essas mensagens "não é possível renderizar ..." ou permitir que elas sejam de alguma forma?
ruby-on-rails
vagrant
Leandro França
fonte
fonte
config/environments/development.rb
, @ydaetskcoRENV.fetch('SSH_CLIENT', '127.0.0.1').split(' ').first
. Em geral, isso provavelmente será 10.0.2.2, mas deve refletir qualquer configuração de rede ativa (vaga ou não, na verdade - o que, é claro, pode ou não ser o que você deseja).config.web_console.whitelisted_ips
. A segunda são as mensagens de erro que você está vendo em seus logs. Isso é controlado porconfig.web_console.whiny_requests
. Finalmente, e foi esse o problema que eu enfrentei, o erro Ip da lista de permissões foi causado porque o rails estava tentando renderizar o console como um mecanismo padrão para lidar com outro erro. Portanto, corrigir o outro erro ou alterar o padrão também deve ajudar.Você pode colocar na lista branca IPs únicos ou redes inteiras.
Digamos que você queira compartilhar seu console
192.168.0.100
. Você consegue fazer isso:Se você deseja colocar na lista de permissões toda a rede privada, você pode:
Se você não quiser mais ver esta mensagem, defina esta opção como false:
Cuidado com o que você deseja, porque você pode conseguir tudo
Provavelmente, isso é apenas para fins de desenvolvimento; portanto, você pode preferir colocá-lo em
config/environments/development.rb
vez deconfig/application.rb
.fonte
Codificar um IP em um arquivo de configuração não é bom. E os outros desenvolvedores? E se o ip mudar?
A configuração relacionada ao Docker não deve vazar para o aplicativo rails sempre que possível. É por isso que você deve usar env vars no
config/environments/development.rb
arquivo:Você deve definir envios corretos em um
.env
arquivo, não rastreados no controle de versão.Em
docker-compose.yml
você pode injetar env vars deste arquivo comenv_file
:Com base no feebdack recebido nos comentários, também podemos criar uma solução sem variáveis de ambiente:
Deixarei as soluções com env var para fins de aprendizado.
fonte
.env
não deve ser verificado no controle de versão, qualquer pessoa pode substituí-lo em seu próprio ambiente. As informações estivador vazamentos de qualquer maneira para o aplicativo, nós apenas minimizar os danos aqui :)env_file
e com a sua resposta.environment
docker-compose.yml
DOCKERIZED
variável -env. O Docker cria um/.dockerenv
arquivo-que você pode verificar:File.file?('/.dockerenv') => true
e você está dentro de um contêiner.Descoberta automática dentro do seu
config/development.rb
Claro que pode ser necessário adicionar
Dentro do seu arquivo.
fonte
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']
na resposta da @ kwerle ?Qualquer pessoa em qualquer uma das minhas redes privadas é bem-vinda.
Eu corro em um contêiner de docker e não me importo com a rede que ele deseja usar esta semana.
config / environment / development.rb adiciona linha
fonte
Para ambiente de desenvolvimento: detecte se é janela de encaixe, determine o endereço IP e coloque-o na lista de permissões
Para mim, isso imprime o seguinte e o aviso desaparece 🎉
Minha solução foi combinar
fonte
undefined method <<' for nil:NilClass (NoMethodError)
. Então eu criei uma variável chamadawhitelisted_ips = [ ]
, usei dentro do loop adicionando os ips e depois do loop:config.web_console.whitelisted_ips = whitelisted_ips
e então funcionou para mim! Então obrigado!Se você estiver usando o Docker, provavelmente não deseja introduzir novas variáveis ENV nem codificar seu endereço IP específico.
Em vez disso, convém verificar se você está usando o Docker
/proc/1/cgroup
e permitir o IP do host (paraweb_console
ebetter_errors
). Adicione ao seuconfig/environments/development.rb
fonte
fonte
Para mim,
whitelisted_ips
não parecia funcionar em um novo projeto. O Leia-me declara que a entrada de configuração correspondente deve serpermissions
agora:https://github.com/rails/web-console/blob/master/README.markdown
fonte
Se você administra seu site localmente (no host), geralmente funciona, pois sempre
127.0.0.1
é permitido . Mas se você colocar seu site em um contêiner (não em produção, localmente), convém adicioná-lo aconfig/environments/development.rb
:PS Na maioria das vezes você quer queixar-se (não quer fazer
config.web_console.whiny_requests = false
). Porque isso pode significar que você está executando aweb-console
produção (o que não deve fazer).fonte
Se você deseja parar de ver esta mensagem de erro, pode adicionar esta linha no site development.rb
fonte