Comment désactiver "impossible de rendre la Console à partir de ..." sur Rails
J'utilise Ubuntu / vagrant comme environnement de développement. Je reçois ces messages sur la console 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
Est-il possible de désactiver ceux " impossible de rendre..."messages ou leur permettre en aucune façon?
7 réponses
Vous devez mettre en liste blanche l'Espace réseau 10.0.2.2 dans la configuration de la Console Web.
Donc, vous voudrez quelque chose comme ceci:
class Application < Rails::Application
config.web_console.whitelisted_ips = '10.0.2.2'
end
Lire ici pour plus d'informations.
, Comme souligné par pguardiario, ce qui veut aller dans config/environments/development.rb
plutôt que config/application.rb
, de sorte qu'il est appliqué uniquement dans votre environnement de développement.
Vous pouvez mettre en liste blanche des adresses IP uniques ou des réseaux entiers.
Dites que vous voulez partager votre console avec 192.168.0.100
. Vous pouvez faire ceci:
class Application < Rails::Application
config.web_console.whitelisted_ips = '192.168.0.100'
end
Si vous voulez mettre en liste blanche l'ensemble du réseau privé, vous pouvez faire:
class Application < Rails::Application
config.web_console.whitelisted_ips = '192.168.0.0/16'
end
Si vous ne voulez plus voir ce message, définissez cette option sur false:
class Application < Rails::Application
config.web_console.whiny_requests = false
end
Faites attention à ce que vous souhaitez, car vous pourriez tout obtenir
Ceci est probablement uniquement à des fins de développement, vous pouvez donc préférer le placer sous config/environments/development.rb
au lieu de config/application.rb
.
Le codage en dur D'une adresse IP dans un fichier de configuration n'est pas bon. Quels sont les autres devs? Que faire si l'adresse IP change?
La configuration liée à Docker ne devrait pas fuir dans l'application rails autant que possible. C'est pourquoi vous devriez utiliser env vars dans le fichier config/environments/development.rb
:
class Application < Rails::Application
# Check if we use Docker to allow docker ip through web-console
if ENV['DOCKERIZED'] == 'true'
config.web_console.whitelisted_ips = ENV['DOCKER_HOST_IP']
end
end
Vous devez définir des variables d'env correctes dans un fichier .env
, non suivi dans le contrôle de version.
Dans docker-compose.yml
Vous pouvez injecter des variables env à partir de ce fichier avec env_file
:
app:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
links:
- db
environment:
- DOCKERIZED=true
env_file:
- ".env"
Découverte automatique dans votre config/development.rb
config.web_console.whitelisted_ips = Socket.ip_address_list.reduce([]) do |res, addrinfo|
addrinfo.ipv4? ? res << IPAddr.new(addrinfo.ip_address).mask(24) : res
end
Bien sûr, vous devrez peut-être ajouter
require 'socket'
require 'ipaddr'
Dans votre fichier.
Toute personne sur l'un de mes réseaux privés est la bienvenue.
Je cours dans un conteneur docker et je me fiche du réseau qu'il veut utiliser cette semaine.
Config / environnements / développement.RB ajouter une ligne
config.web_console.whitelisted_ips = ['10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']
Pour l'environnement de développement: détectez si c'est docker, puis déterminez l'adresse IP et la liste blanche
# config/environments/development.rb
require 'socket'
require 'ipaddr'
Rails.application.configure do
...
# When inside a docker container
if File.file?('/.dockerenv')
# Whitelist docker ip for web console
# Cannot render console from 172.27.0.1! Allowed networks: 127.0.0.1
Socket.ip_address_list.each do |addrinfo|
next unless addrinfo.ipv4?
next if addrinfo.ip_address == "127.0.0.1" # Already whitelisted
ip = IPAddr.new(addrinfo.ip_address).mask(24)
Logger.new(STDOUT).info "Adding #{ip.inspect} to config.web_console.whitelisted_ips"
config.web_console.whitelisted_ips << ip
end
end
end
Pour moi, cela imprime ce qui suit et l'avertissement disparaît
Adding 172.27.0.0 to config.web_console.whitelisted_ips
Adding 172.18.0.0 to config.web_console.whitelisted_ips
Ma solution était de combiner
- la réponse de l'utilisateur2481743 ️ https://stackoverflow.com/a/42142563/2037928
- le commentaire de jottr How comment désactiver " impossible de rendre la Console à partir de..."sur Rails
Si vous voulez arrêter de voir ce message d'erreur, vous pouvez ajouter cette ligne dans développement.rb
config.web_console.whiny_requests = false