J'utilise Ubuntu / vagrant comme environnement de développement. Je reçois ces messages sur la console des 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 ces messages "impossible de rendre ..." ou de les autoriser de quelque manière que ce soit?
ruby-on-rails
vagrant
Leandro França
la source
la source
config/environments/development.rb
, @ydaetskcoRENV.fetch('SSH_CLIENT', '127.0.0.1').split(' ').first
. En général, ce sera probablement 10.0.2.2, mais cela devrait refléter la configuration du réseau active (vagabond ou pas, vraiment - ce qui, bien sûr, peut ou non être ce que vous voulez).config.web_console.whitelisted_ips
. Le second est les messages d'erreur que vous voyez dans vos journaux. Ceci est contrôlé parconfig.web_console.whiny_requests
. Enfin, et c'est le problème auquel j'ai été confronté, l'erreur Ip de la liste blanche a été causée parce que les rails essayaient de rendre la console comme mécanisme par défaut pour gérer une autre erreur. Donc, soit corriger l'autre erreur, soit changer la valeur par défaut devrait également aider.Vous pouvez mettre en liste blanche des adresses IP uniques ou des réseaux entiers.
Supposons que vous souhaitiez partager votre console avec
192.168.0.100
. Tu peux le faire:Si vous souhaitez ajouter tout le réseau privé à la liste blanche, vous pouvez faire:
Si vous ne voulez plus voir ce message, définissez cette option sur false:
Faites attention à ce que vous souhaitez, car vous pourriez tout avoir
Ceci est probablement uniquement à des fins de développement, vous préférerez peut-être le placer sous
config/environments/development.rb
au lieu deconfig/application.rb
.la source
Le codage en dur d'une adresse IP dans un fichier de configuration n'est pas bon. Et les autres développeurs? Et si l'IP change?
La configuration liée à Docker ne doit pas s'infiltrer dans l'application rails dans la mesure du possible. C'est pourquoi vous devez utiliser env vars dans le
config/environments/development.rb
fichier:Vous devez définir des variables d'environnement correctes dans un
.env
fichier, non suivies dans le contrôle de version.Dans
docker-compose.yml
vous pouvez injecter des variables d'environnement à partir de ce fichier avecenv_file
:Sur la base des frais reçus dans les commentaires, nous pouvons également construire une solution sans variables d'environnement:
Je laisse les solutions avec env var à des fins d'apprentissage.
la source
.env
ne devrait pas être vérifié dans le contrôle de version, n'importe qui peut le remplacer dans son propre environnement. Les informations du docker fuient de toute façon dans l'application, nous minimisons simplement les dégâts ici :)env_file
etenvironment
dansdocker-compose.yml
votre réponse, aussi. 👍DOCKERIZED
variable -env. Docker crée un/.dockerenv
-file, que vous pouvez vérifier:File.file?('/.dockerenv') => true
et vous êtes à l'intérieur d'un conteneur.Découverte automatique dans votre
config/development.rb
Bien sûr, il faudra peut-être ajouter
Dans votre dossier.
la source
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']
de @ kwerle ?Toute personne sur l'un de mes réseaux privés est la bienvenue.
Je cours dans un conteneur de docker et je me fiche du réseau qu'il souhaite utiliser cette semaine.
config / environnements / development.rb ajouter une ligne
la source
Pour l'environnement de développement: détectez s'il s'agit d'un docker, puis déterminez l'adresse IP et ajoutez-la à la liste blanche
Pour moi, cela imprime ce qui suit et l'avertissement disparaît 🎉
Ma solution était de combiner
la source
undefined method <<' for nil:NilClass (NoMethodError)
. J'ai donc créé une variable appeléewhitelisted_ips = [ ]
, je l'ai utilisée dans la boucle en ajoutant les ips, et après la boucle:config.web_console.whitelisted_ips = whitelisted_ips
et puis ça a marché pour moi! Donc merci!Si vous utilisez Docker, vous ne souhaitez probablement ni introduire de nouvelles variables ENV ni coder en dur votre adresse IP spécifique.
Au lieu de cela, vous voudrez peut-être vérifier que vous utilisez Docker
/proc/1/cgroup
et autoriser votre IP hôte (à la fois pourweb_console
etbetter_errors
). Ajoutez à votreconfig/environments/development.rb
la source
la source
Pour moi,
whitelisted_ips
cela ne semblait pas fonctionner dans un nouveau projet. Le Readme indique que l'entrée de configuration correspondante est censée êtrepermissions
maintenant:https://github.com/rails/web-console/blob/master/README.markdown
la source
Si vous exécutez votre site localement (sur l'hôte), cela fonctionne généralement, car
127.0.0.1
c'est toujours autorisé . Mais si vous allez mettre votre site dans un conteneur (pas en production, localement), vous voudrez peut-être ajouter ceci dansconfig/environments/development.rb
:PS La plupart du temps, vous voulez qu'il gémisse (ne voulez pas faire
config.web_console.whiny_requests = false
). Parce que cela peut signifier que vous êtesweb-console
en production (ce que vous ne devriez pas faire).la source
Si vous ne souhaitez plus voir ce message d'erreur, vous pouvez ajouter cette ligne dans development.rb
la source