docker-composeを使ってRailsからRedisを利用したい。
docker-composeを使用してRailsの環境構築をしています。
試しにRedisのコンテナを追加したのですが、Rails側でポート関連のエラー?が出てしまいました。
解決策をご存知の方がいらっしゃいましたら教えていただきたいです。
発生している問題・エラーメッセージ
URL: http://localhost:3000/users
- MVCはscaffoldを使って作ったそのままの状態です。
Errno::EADDRNOTAVAIL in Users#index Showing /app/app/views/layouts/application.html.erb where line #5 raised: Cannot assign requested address - connect(2) for [::1]:6379 Extracted source (around line #5): <head> <title>App</title> <%= csrf_meta_tags %> <%= stylesheet_link_tag 'application', media: 'all' %> <%= javascript_include_tag 'application' %>
<%= csrf_meta_tags %>の箇所でエラーが出ているようです。
該当のソースコード
config/initializers/session_store.rb
Rails.application.config.session_store :redis_store, { servers: [ { host: ENV['REDIS_HOST'] || 'localhost', port: ENV['REDIS_PORT'] || 6379, db: 0, namespace: 'session' } ], expire_after: 90.minutes }
docker-compose.yml
version: '3' services: web: build: . command: bundle exec rails s -p 3000 -b 0.0.0.0 ports: - 3000:3000 volumes: - .:/app depends_on: - db tty: true stdin_open: true db: image: mysql:5.7 volumes: - db-volume:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: 非公開 redis: image: redis volumes: db-volume:
$ docker-compose ps
では以下のように表示されました。
$ docker-compose ps Name Command State Ports ------------------------------------------------------------------------------- rails_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp rails_redis_1 docker-entrypoint.sh redis ... Up 6379/tcp rails_web_1 bundle exec rails s -p 300 ... Up 0.0.0.0:3000->3000/tcp
試したこと
上記のdocker-compose.ymlbのRedisにportsを指定
docker-compose.yml
redis: image: redis ports: - 6379:6379
$ docker-compose ps
では以下のように表示されました。
$ docker-compose ps Name Command State Ports ------------------------------------------------------------------------------- rails_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp rails_redis_1 docker-entrypoint.sh redis ... Up 0.0.0.0:6379->6379/tcp rails_web_1 bundle exec rails s -p 300 ... Up 0.0.0.0:3000->3000/tcp
しかし、エラーメッセージに変化はありませんでした。
補足情報(FW/ツールのバージョンなど)
#####Ruby
2.3.7
####gem
* rails (5.0.7) * redis (4.0.2) * redis-actionpack (5.0.2) * redis-activesupport (5.0.7) * redis-rack (2.0.4) * redis-rails (5.0.2) * redis-store (1.5.0)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。