Używam Ubuntu / vagrant jako mojego środowiska programistycznego. Otrzymuję te komunikaty na konsoli railsów:
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
Czy można wyłączyć te komunikaty „nie można renderować ...” lub zezwolić na nie w jakikolwiek sposób?
ruby-on-rails
vagrant
Leandro França
źródło
źródło
config/environments/development.rb
, @ydaetskcoRENV.fetch('SSH_CLIENT', '127.0.0.1').split(' ').first
. Ogólnie będzie to prawdopodobnie 10.0.2.2, ale powinno odzwierciedlać dowolną konfigurację sieci, która jest aktywna (błędna czy nie, tak naprawdę - co oczywiście może być tym, czego chcesz lub nie).config.web_console.whitelisted_ips
. Drugi to komunikaty o błędach, które widzisz w swoich dziennikach. Jest to kontrolowane przezconfig.web_console.whiny_requests
. Wreszcie, i to był problem, który napotkałem, błąd Ip białej listy był spowodowany tym, że rails próbowały renderować konsolę jako domyślny mechanizm do obsługi innego błędu. Więc naprawienie drugiego błędu lub zmiana wartości domyślnej również powinno pomóc.Możesz umieścić na białej liście pojedyncze adresy IP lub całe sieci.
Powiedz, że chcesz udostępnić swoją konsolę
192.168.0.100
. Możesz to zrobić:Jeśli chcesz dodać do białej listy całą sieć prywatną, możesz:
Jeśli nie chcesz już widzieć tego komunikatu, ustaw tę opcję na fałsz:
Uważaj, czego sobie życzysz, bo możesz to wszystko dostać
Jest to prawdopodobnie tylko do celów rozwojowych, więc może wolisz, aby umieścić go pod
config/environments/development.rb
zamiastconfig/application.rb
.źródło
Zakodowanie adresu IP w pliku konfiguracyjnym nie jest dobre. A co z innymi deweloperami? Co jeśli zmieni się adres IP?
Konfiguracja związana z Dockerem nie powinna przeciekać do aplikacji railsowej, gdy tylko jest to możliwe. Dlatego powinieneś używać zmiennych env w
config/environments/development.rb
pliku:Powinieneś ustawić poprawne zmienne env w
.env
pliku, a nie śledzić ich w kontroli wersji.W
docker-compose.yml
możesz wstrzyknąć zmienne env z tego pliku za pomocąenv_file
:Na podstawie informacji uzyskanych w komentarzach możemy również zbudować rozwiązanie bez zmiennych środowiskowych:
Zostawię rozwiązania z env var do celów edukacyjnych.
źródło
.env
nie należy go sprawdzać w kontroli wersji, każdy może ją zastąpić w swoim własnym środowisku. Informacje o dokerze i tak wyciekają do aplikacji, tutaj po prostu minimalizujemy szkody :)env_file
i z Twojej odpowiedzi. 👍environment
docker-compose.yml
DOCKERIZED
zmiennej -env. Docker tworzy/.dockerenv
-plik, który możesz sprawdzić:File.file?('/.dockerenv') => true
i jesteś w kontenerze.Automatyczne wykrywanie w Twoim
config/development.rb
Oczywiście może być konieczne dodanie
W Twoim pliku.
źródło
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']
od @ kwerle za odpowiedź ?Mile widziane są osoby korzystające z moich prywatnych sieci.
Pracuję w kontenerze docker i nie obchodzi mnie, z której sieci chce korzystać w tym tygodniu.
config / environment / development.rb dodaj wiersz
źródło
Środowisko programistyczne: wykryj, czy jest to docker, a następnie określ adres IP i umieść go na białej liście
U mnie to wypisuje następujące i ostrzeżenie znika 🎉
Moim rozwiązaniem było połączenie
źródło
undefined method <<' for nil:NilClass (NoMethodError)
. Utworzyłem więc zmienną o nazwiewhitelisted_ips = [ ]
, użyłem jej wewnątrz pętli dodając ips, a po pętli:config.web_console.whitelisted_ips = whitelisted_ips
i wtedy zadziałało! Więc dziękuję!Jeśli używasz Dockera, najprawdopodobniej nie chcesz ani wprowadzać nowych zmiennych ENV, ani zakodować na stałe swojego konkretnego adresu IP.
Zamiast tego możesz chcieć sprawdzić, czy korzystasz z platformy Docker
/proc/1/cgroup
, i zezwolić na adres IP hosta (zarówno dla, jakweb_console
ibetter_errors
). Dodaj do swojegoconfig/environments/development.rb
źródło
źródło
whitelisted_ips
Wydaje mi się, że nie działa w nowym projekcie. Plik Readme stwierdza, że odpowiedni wpis konfiguracji powinien byćpermissions
teraz:https://github.com/rails/web-console/blob/master/README.markdown
źródło
Jeśli uruchamiasz swoją witrynę lokalnie (na hoście), generalnie działa, ponieważ
127.0.0.1
jest to zawsze dozwolone . Ale jeśli zamierzasz umieścić swoją witrynę w kontenerze (nie w wersji produkcyjnej, lokalnie), możesz dodać to doconfig/environments/development.rb
:PS Przez większość czasu chcesz, żeby jęczała (nie chcesz
config.web_console.whiny_requests = false
). Ponieważ może to oznaczać, że pracujeszweb-console
w środowisku produkcyjnym (czego nie powinieneś robić).źródło
Jeśli nie chcesz widzieć tego komunikatu o błędzie, możesz dodać ten wiersz w pliku development.rb
źródło