はじめに
以下エラーがDocker環境のRailsアプリ開発中に発生しました。
対処法について記載します。
画面はrails s
のログから切り取ったものです。
Cannot render console from 172.23.0.1! Allowed networks: 127.0.0.0/127.255.255.255, ::1
環境
OS: macOS Catalina 10.15.1
Ruby: 2.6.5
Rails: 6.0.2.1
Docker: 19.03.5
docker-compose: 1.24.1
結論:対処法
config/environment/development.rb
に以下ホワイトリストを追記します。
Rails.application.configure do
...略
config.web_console.whitelisted_ips = '172.23.0.1' #追記
...略
end
これで無事に動くようになります。
以降は念の為調べてみたメモです。
(余談1)ホワイトリストとは?
ホワイトリスト(英語: Whitelist)とは、警戒する必要のない対象の一覧表のこと。対義語はブラックリスト。
(余談2)このアドレスって何なのかを確認
**むやみに許可すると怖くない?**と思い、このIPアドレスについて調べました。
docker network ls
で開発中のアプリケーション名がついているネットワークを確認。
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
XXXXXXXXXXXX bridge bridge local
YYYYYYYYYYYY host host local
...略
ZZZZZZZZZZZZ <アプリケーション名>_default bridge local
...略
↓
docker network inspect <アプリケーション名>_default
で詳細を見てみる。
$ docker network inspect <アプリケーション名>_default
[
{
"Name": "<アプリケーション名>_default",
"Id": "<一意のID>",
"Created": "<作成された日付>",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.23.0.0/16",
"Gateway": "172.23.0.1" #今回許可したアドレス
}
]
},
おわりに
最後まで読んで頂きありがとうございました
どなたかの参考になれば幸いです