Saya menggunakan Ubuntu / gelandangan sebagai lingkungan pengembangan saya. Saya menerima pesan-pesan ini di konsol 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
Apakah mungkin untuk menonaktifkan pesan "tidak dapat membuat ..." atau mengizinkannya dengan cara apa pun?
ruby-on-rails
vagrant
Leandro França
sumber
sumber
config/environments/development.rb
, @ydaetskcoRENV.fetch('SSH_CLIENT', '127.0.0.1').split(' ').first
. Secara umum, ini mungkin 10.0.2.2, tetapi harus mencerminkan konfigurasi jaringan apa pun yang aktif (gelandangan atau tidak, sungguh - yang tentu saja mungkin atau mungkin tidak seperti yang Anda inginkan).config.web_console.whitelisted_ips
. Yang kedua adalah pesan kesalahan yang Anda lihat di log Anda. Ini dikendalikan olehconfig.web_console.whiny_requests
. Akhirnya, dan ini adalah masalah yang saya hadapi, kesalahan daftar putih Ip disebabkan karena rails mencoba membuat konsol sebagai mekanisme default untuk menangani kesalahan lain. Jadi, memperbaiki kesalahan lain, atau mengubah default juga harus membantu.Anda dapat memasukkan daftar putih IP tunggal atau seluruh jaringan.
Katakanlah Anda ingin membagikan konsol Anda
192.168.0.100
. Kamu bisa melakukan ini:Jika Anda ingin membuat daftar putih seluruh jaringan pribadi, Anda dapat melakukan:
Jika Anda tidak ingin melihat pesan ini lagi, setel opsi ini ke false:
Berhati-hatilah dengan apa yang Anda inginkan, karena Anda mungkin mendapatkan semuanya
Ini mungkin hanya untuk tujuan pengembangan sehingga Anda mungkin lebih memilih untuk tempat di bawah
config/environments/development.rb
bukanconfig/application.rb
.sumber
Hardcoding IP ke file konfigurasi tidak baik. Bagaimana dengan devs lain? Bagaimana jika ip berubah?
Konfigurasi terkait docker tidak boleh bocor ke aplikasi rel bila memungkinkan. Itu sebabnya Anda harus menggunakan env vars dalam
config/environments/development.rb
file:Anda harus menetapkan var dalam
.env
file yang benar, tidak dilacak ke kontrol versi.Dalam
docker-compose.yml
Anda dapat menyuntikkan env vars dari file ini denganenv_file
:Berdasarkan kartu kredit yang diterima dalam komentar, kami juga dapat membangun solusi tanpa variabel lingkungan:
Saya akan meninggalkan solusi dengan env var untuk tujuan pembelajaran.
sumber
.env
tidak boleh diperiksa ke dalam kontrol versi, siapa pun dapat menimpanya di lingkungannya sendiri. Informasi buruh pelabuhan bocor ke dalam aplikasi, kami hanya meminimalkan kerusakan di sini :)env_file
danenvironment
opsidocker-compose.yml
dari jawaban Anda juga. 👍DOCKERIZED
variabel -env. Docker membuat/.dockerenv
-file, yang dapat Anda periksa:File.file?('/.dockerenv') => true
dan Anda berada di dalam sebuah wadah.Penemuan otomatis di dalam Anda
config/development.rb
Tentu saja mungkin perlu menambahkan
Di dalam file Anda.
sumber
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']
dari jawaban @ kwerle ?Siapa pun di salah satu jaringan pribadi saya dipersilakan.
Saya menjalankan dalam wadah buruh pelabuhan dan saya tidak peduli jaringan mana yang ingin digunakan minggu ini.
config / environment / development.rb tambahkan baris
sumber
Untuk lingkungan pengembangan: Mendeteksi jika ada buruh pelabuhan, lalu tentukan alamat IP dan masukkan daftar putih itu
Bagi saya ini mencetak yang berikut dan peringatan hilang 🎉
Solusi saya adalah menggabungkan
sumber
undefined method <<' for nil:NilClass (NoMethodError)
. Jadi saya membuat variabel yang disebutwhitelisted_ips = [ ]
, menggunakannya di dalam loop menambahkan ips, dan setelah loop:config.web_console.whitelisted_ips = whitelisted_ips
dan kemudian itu berhasil untuk saya! Jadi terima kasih!Jika Anda menggunakan Docker, kemungkinan besar Anda tidak ingin memperkenalkan variabel ENV baru atau membuat hardcode alamat IP spesifik Anda.
Alih-alih, Anda mungkin ingin memeriksa apakah Anda menggunakan Docker
/proc/1/cgroup
, dan mengizinkan IP host Anda (baik untukweb_console
danbetter_errors
). Tambahkan keconfig/environments/development.rb
sumber
sumber
Bagi saya,
whitelisted_ips
sepertinya tidak berhasil dalam proyek baru. Readme menyatakan entri konfigurasi yang sesuai seharusnyapermissions
sekarang:https://github.com/rails/web-console/blob/master/README.markdown
sumber
Jika Anda menjalankan situs Anda secara lokal (pada host) umumnya bekerja keluar, karena
127.0.0.1
ini selalu diizinkan . Tetapi jika Anda akan menempatkan situs Anda ke dalam wadah (bukan produksi, secara lokal), Anda mungkin ingin menambahkan ini keconfig/environments/development.rb
:PS Sebagian besar waktu Anda ingin merengek (tidak mau melakukan
config.web_console.whiny_requests = false
). Karena itu mungkin berarti Anda menjalankanweb-console
produksi (yang seharusnya tidak Anda lakukan).sumber
Jika Anda ingin berhenti melihat pesan kesalahan ini, Anda dapat menambahkan baris ini di development.rb
sumber