Docker 无法启动 Rails

2023-12-02

我正在尝试使用 Rails 启动我的 Rails 应用程序。它依赖于redis,它似乎可以工作,但是当rails服务器启动时它会失败Cannot assign requested address - connect(2) for [::1]:6379 (Errno::EADDRNOTAVAIL).

Dockerfile

FROM ruby:2.6.1

RUN apt-get update -yqq && \
  apt-get install -yqq --no-install-recommends \
  nodejs \
  nano

COPY Gemfile* /usr/src/app/
WORKDIR /usr/src/app
RUN bundle install
RUN gem install foreman
RUN gem install rake -v 12.3.2

COPY . /usr/src/app/

CMD [ "bin/rails", "s", "-b", "0.0.0.0" ]

.docker-compose.yml

version: '3'

services:
  postgres:
    image: 'postgres:10.3-alpine'
    volumes:
      - 'postgres:/var/lib/postgresql/data'
    env_file:
      - '.env'

  redis:
    image: 'redis'
    # volumes:
    #   - 'redis:/data'

  rails:
    depends_on:
      - 'postgres'
      - 'redis'
    build: .
    ports:
      - '3000:3000'
    volumes:
      - '.:/usr/src/app'
    env_file:
      - '.env'

volumes:
  redis:
  postgres:

log

rails_1     | => Booting Puma
rails_1     | => Rails 5.2.2.1 application starting in development
rails_1     | => Run `rails server -h` for more startup options
rails_1     | Exiting
rails_1     | /usr/local/lib/ruby/2.6.0/socket.rb:1213:in `__connect_nonblock': Cannot assign requested address - connect(2) for [::1]:6379 (Errno::EADDRNOTAVAIL)
rails_1     |   from /usr/local/lib/ruby/2.6.0/socket.rb:1213:in `connect_nonblock'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis/connection/ruby.rb:180:in `connect_addrinfo'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis/connection/ruby.rb:220:in `block in connect'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis/connection/ruby.rb:218:in `each'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis/connection/ruby.rb:218:in `each_with_index'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis/connection/ruby.rb:218:in `connect'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis/connection/ruby.rb:296:in `connect'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis/client.rb:342:in `establish_connection'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis/client.rb:104:in `block in connect'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis/client.rb:299:in `with_reconnect'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis/client.rb:103:in `connect'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis/client.rb:372:in `ensure_connected'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis/client.rb:224:in `block in process'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis/client.rb:312:in `logging'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis/client.rb:223:in `process'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis/client.rb:123:in `call'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis.rb:1347:in `block in sadd'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis.rb:50:in `block in synchronize'
rails_1     |   from /usr/local/lib/ruby/2.6.0/monitor.rb:230:in `mon_synchronize'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis.rb:50:in `synchronize'
rails_1     |   from /usr/local/bundle/gems/redis-4.1.0/lib/redis.rb:1346:in `sadd'
rails_1     |   from /usr/local/bundle/gems/redis-namespace-1.6.0/lib/redis/namespace.rb:442:in `call_with_namespace'
rails_1     |   from /usr/local/bundle/gems/redis-namespace-1.6.0/lib/redis/namespace.rb:328:in `method_missing'
rails_1     |   from /usr/local/bundle/gems/resque-2.0.0/lib/resque/data_store.rb:65:in `method_missing'
rails_1     |   from /usr/local/bundle/bundler/gems/resque-scheduler-bbf4930c2802/lib/resque/scheduler/scheduling_extensions.rb:94:in `set_schedule'
rails_1     |   from /usr/local/bundle/bundler/gems/resque-scheduler-bbf4930c2802/lib/resque/scheduler/scheduling_extensions.rb:51:in `block in schedule='
rails_1     |   from /usr/local/bundle/bundler/gems/resque-scheduler-bbf4930c2802/lib/resque/scheduler/scheduling_extensions.rb:50:in `each'
rails_1     |   from /usr/local/bundle/bundler/gems/resque-scheduler-bbf4930c2802/lib/resque/scheduler/scheduling_extensions.rb:50:in `schedule='
rails_1     |   from /usr/src/app/config/initializers/resque.rb:8:in `<top (required)>'
rails_1     |   from /usr/local/bundle/gems/activesupport-5.2.2.1/lib/active_support/dependencies.rb:285:in `load'
rails_1     |   from /usr/local/bundle/gems/activesupport-5.2.2.1/lib/active_support/dependencies.rb:285:in `block in load'
rails_1     |   from /usr/local/bundle/gems/activesupport-5.2.2.1/lib/active_support/dependencies.rb:257:in `load_dependency'
rails_1     |   from /usr/local/bundle/gems/activesupport-5.2.2.1/lib/active_support/dependencies.rb:285:in `load'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/engine.rb:657:in `block in load_config_initializer'
rails_1     |   from /usr/local/bundle/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:170:in `instrument'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/engine.rb:656:in `load_config_initializer'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/engine.rb:614:in `block (2 levels) in <class:Engine>'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/engine.rb:613:in `each'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/engine.rb:613:in `block in <class:Engine>'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/initializable.rb:32:in `instance_exec'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/initializable.rb:32:in `run'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/initializable.rb:61:in `block in run_initializers'
rails_1     |   from /usr/local/lib/ruby/2.6.0/tsort.rb:228:in `block in tsort_each'
rails_1     |   from /usr/local/lib/ruby/2.6.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
rails_1     |   from /usr/local/lib/ruby/2.6.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from'
rails_1     |   from /usr/local/lib/ruby/2.6.0/tsort.rb:431:in `each_strongly_connected_component_from'
rails_1     |   from /usr/local/lib/ruby/2.6.0/tsort.rb:421:in `block in each_strongly_connected_component_from'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/initializable.rb:50:in `each'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/initializable.rb:50:in `tsort_each_child'
rails_1     |   from /usr/local/lib/ruby/2.6.0/tsort.rb:415:in `call'
rails_1     |   from /usr/local/lib/ruby/2.6.0/tsort.rb:415:in `each_strongly_connected_component_from'
rails_1     |   from /usr/local/lib/ruby/2.6.0/tsort.rb:349:in `block in each_strongly_connected_component'
rails_1     |   from /usr/local/lib/ruby/2.6.0/tsort.rb:347:in `each'
rails_1     |   from /usr/local/lib/ruby/2.6.0/tsort.rb:347:in `call'
rails_1     |   from /usr/local/lib/ruby/2.6.0/tsort.rb:347:in `each_strongly_connected_component'
rails_1     |   from /usr/local/lib/ruby/2.6.0/tsort.rb:226:in `tsort_each'
rails_1     |   from /usr/local/lib/ruby/2.6.0/tsort.rb:205:in `tsort_each'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/initializable.rb:60:in `run_initializers'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/application.rb:361:in `initialize!'
rails_1     |   from /usr/src/app/config/environment.rb:5:in `<top (required)>'
rails_1     |   from config.ru:3:in `require_relative'
rails_1     |   from config.ru:3:in `block in <main>'
rails_1     |   from /usr/local/bundle/gems/rack-2.0.7/lib/rack/builder.rb:55:in `instance_eval'
rails_1     |   from /usr/local/bundle/gems/rack-2.0.7/lib/rack/builder.rb:55:in `initialize'
rails_1     |   from config.ru:in `new'
rails_1     |   from config.ru:in `<main>'
rails_1     |   from /usr/local/bundle/gems/rack-2.0.7/lib/rack/builder.rb:49:in `eval'
rails_1     |   from /usr/local/bundle/gems/rack-2.0.7/lib/rack/builder.rb:49:in `new_from_string'
rails_1     |   from /usr/local/bundle/gems/rack-2.0.7/lib/rack/builder.rb:40:in `parse_file'
rails_1     |   from /usr/local/bundle/gems/rack-2.0.7/lib/rack/server.rb:319:in `build_app_and_options_from_config'
rails_1     |   from /usr/local/bundle/gems/rack-2.0.7/lib/rack/server.rb:219:in `app'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/commands/server/server_command.rb:27:in `app'
rails_1     |   from /usr/local/bundle/gems/rack-2.0.7/lib/rack/server.rb:354:in `wrapped_app'
rails_1     |   from /usr/local/bundle/gems/rack-2.0.7/lib/rack/server.rb:283:in `start'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/commands/server/server_command.rb:53:in `start'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/commands/server/server_command.rb:147:in `block in perform'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/commands/server/server_command.rb:142:in `tap'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/commands/server/server_command.rb:142:in `perform'
rails_1     |   from /usr/local/bundle/gems/thor-0.20.3/lib/thor/command.rb:27:in `run'
rails_1     |   from /usr/local/bundle/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'
rails_1     |   from /usr/local/bundle/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/command/base.rb:65:in `perform'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/command.rb:46:in `invoke'
rails_1     |   from /usr/local/bundle/gems/railties-5.2.2.1/lib/rails/commands.rb:18:in `<top (required)>'
rails_1     |   from bin/rails:4:in `require'
rails_1     |   from bin/rails:4:in `<main>'

Cannot assign requested address - connect(2) for [::1]:6379 (Errno::EADDRNOTAVAIL)

您的 Rails 应用程序正在尝试通过 localhost 连接到 Redis,但该服务位于不同的容器上。尝试连接到redis:6379反而。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 无法启动 Rails 的相关文章

随机推荐

  • 将大量节点插入 Neo4J

    我有一个表存储在一个典型的 MySQL 数据库中 并且我使用 java 构建了一个小型解析器工具 用于解析并构建 neo4j 数据库 该数据库将有约 4000 万个节点 每个节点都有一个或多个边 最多可能有 10 个边 问题来自我必须创建某
  • 如何调用“Select”的OnChange事件? (Delphi - 网络浏览器)

    我正在使用 Delphi 和 Web 浏览器组件来导航 html 页面 该页面有一个 Combobox 有什么方法可以调用 OnChange 事件吗 组合框是这样的
  • 将数组列中的值替换为另一个表中的相关值

    在我的数据库中我有一个表relations有一个柱子relation ids包含用户的 ID user id 它采用具有多个可能 ID 的数组形式 例如 111 112 156 4465 我还有另一张桌子names包含有关用户的信息 例如u
  • 如何在 iPhone 上使用委托模式

    我对在 iPhone 上使用委托模式有一些疑问 这是使用委托模式的代码 这段代码有效 SecondViewController secondViewController SecondViewController alloc init sec
  • 如何仅向特定行授予 MySQL 权限

    假设有一张学生桌 学生 身份证号 姓名 城市 我想创建一个用户 A 并仅授予更新 id 10 的记录的权限 CREATE USER A GRANT UPDATE ON student TO A WHERE student id 10 我尝试
  • php检查数组中的多个日期是否在日期范围内

    我有一个结构如下的数组 Array 0 gt 24 12 2013 1 gt 25 12 2013 2 gt 26 12 2014 3 gt 27 12 2013 4 我想检查数组中的任何日期是否在给定的日期范围内 日期范围的结构如下 st
  • 我可以隐藏 UIDocumentInteractionController 视图上的操作按钮吗?

    我想知道是否可以隐藏 UIDocumentInteractionController 上的操作按钮 以便用户实际上无法在另一个应用程序中打开文档 我发现了一些对我来说足够有效的东西 BOOL documentInteractionContr
  • 如何设置自定义小部件的背景颜色和边框宽度?

    我有一个自定义小部件 其父级是另一个自定义小部件 我可以使用设置父自定义小部件的背景颜色QPalette而且效果很好 但我无法使用两者来设置子自定义小部件的边框颜色QPalette and stylesheet 这就是我设置父自定义小部件背
  • 使用 Azure Ad 中的服务应用程序限制对组或单个邮箱的访问

    我有一个 Azure 集成服务应用程序 守护程序应用程序 具有 Microsoft graph api 的权限 我现在可以读取整个公司的所有邮箱 这很棒 但可能会引起业务管理方面的一些担忧 我们在 Office 365 中使用 Outloo
  • StructureMap HowTo:深层对象的条件构造

    我很难有条件地创建依赖关系 谷歌搜索 我还没有找到使用 BuildStack 和条件谓词的好例子 这是我在注册表中所做的事情 snip public SomeRegistry this InstanceOf
  • 有什么可能的方法从 UIViewcontroller 类调用 drawRect 吗?

    我有一个UIViewController类称为AppController h AppController m 我在那里有数千行代码 这是我在询问之前没有测试它的唯一原因 有没有可能的方法来使用drawRect in a UIViewCont
  • 提高 Get-FileMetaData 的速度

    我目前正在使用以下来自 scriptingguys com 的脚本 这一切都归功于他们 我只是添加了最后两行 它需要一个目录并从文件的元数据中提取文件路径和注释字段 目前该脚本需要 1 5 分钟多一点才能完全运行 有没有办法加快速度或使用不
  • 按电源按钮启动应用程序

    我找到了这个code按电源按钮启动应用程序 我不知道为什么这个代码对我不起作用 但无论如何我正在将一些代码与清单一起放置 请检查 然后告诉我通过按一次或两次电源按钮启动应用程序的代码是否正确 toast Toast makeText get
  • 正则表达式根据之前匹配的内容来匹配某些内容

    我正在尝试编写一个正则表达式来验证移动国际象棋代数记数法 这是我到目前为止所拥有的 O O O Castling KQRBN x a h 1 8 Most normal moves and captures 我迷失的地方是典当促销 马 主教
  • SwingFXUtils 图像序列化替代方案(Javafx、Swing、Raspberry Pi)

    我的 JavaFX 应用程序的用例之一是在一侧加载图像 通过 TCP 套接字对其进行序列化 以在另一侧将其显示为 JavaFX 图像 为了实现这个我正在使用SwingFXUtils fromFXImage and SwingFXUtils
  • Angular 2 + 如何使用相同的选择器选择和循环多个元素(elementRef.nativeElement)

    在我的组件中 我尝试取消选择具有相同类名的所有复选框 querySelector每次 或一次 仅选择第一个 并且querySelectorAll不选择任何内容 这就是函数 我知道这样使用 jQuery 是错误的 但它说明了我的目标 unse
  • C 套接字发送 UDP 并处理来自路由器的 ICMP 回复

    我正在尝试向生存时间为 1 的路由器发送 UDP 数据包 然后接收 ICMP 超时回复 到目前为止 我能够发送数据包 但是当我的程序到达执行的接收部分时 它就挂起了 我对recvfrom进行了错误检查 但它甚至没有达到这一点 我的计算机正在
  • 在匹配中返回 Result>

    我有一组实现给定特征的类型 我想从字符串名称中获取具体类型对象 奇怪的是 当我的match回报Box
  • 目标 c 中 didload 方法启动时的 LandscapeOrientation

    我做了一个iPad应用程序 当我第一次以纵向模式加载应用程序时 它工作正常 但是当我第一次以横向模式加载应用程序时 它仅采用纵向模式的坐标 因为在我的内部didLoad方法我只给出纵向模式的坐标 现在需要给出我的横向模式的坐标didLoad
  • Docker 无法启动 Rails

    我正在尝试使用 Rails 启动我的 Rails 应用程序 它依赖于redis 它似乎可以工作 但是当rails服务器启动时它会失败Cannot assign requested address connect 2 for 1 6379 E