Ruby&Redis / Skidekiq URI :: InvalidURIError:redisscheme不接受registry部分:bsc_redis:6379(或者是错误的主机名?)

在我的docker服务器上我在sidekiq / redis URL URL错误:

Sidekiq.configure_client do |config| config.redis = { url: "redis://bsc_redis:6379", size: 1 } end 

我明白了

URI :: InvalidURIError:schemeredis不接受registry部分:bsc_redis:6379(或坏主机名?)从/usr/local/lib/ruby/2.0.0/uri/generic.rb:214:in initialize' from /usr/local/lib/ruby/2.0.0/uri/common.rb:218:in从/usr/local/lib/ruby/2.0.0/uri/common.rb:218:in initialize' from /usr/local/lib/ruby/2.0.0/uri/common.rb:218:in parse' from /usr/local/lib/ruby/2.0.0/uri/common.rb:747:in parse” log_info' from /usr/local/bundle/gems/sidekiq-4.2.9/lib/sidekiq/redis_connection.rb:20:in创build' log_info' from /usr/local/bundle/gems/sidekiq-4.2.9/lib/sidekiq/redis_connection.rb:20:in .rb:131:在redis=' from (irb):4:in block in irb_binding'from /usr/local/bundle/gems/sidekiq-4.2.9/lib/sidekiq.rb:83:in configure_client' from (irb):4 from /usr/local/bundle/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in start from /usr/local/bundle/gems/railties-3.2.13 /lib/rails/commands/console.rb:8:in start' from /usr/local/bundle/gems/railties-3.2.13/lib/rails/commands.rb:41:in script / rails:6 :在需要 require' from script/rails:6:in '

但是,当我指定bsc_redis容器的IP地址时,它工作正常:

 Sidekiq.configure_client do |config| config.redis = { url: "redis://172.18.0.5:6379", size: 1 } end => {:url=>"redis://172.18.0.5:6379", :size=>1} 

当我从轨道容器ping bsc_redis ,它从172.18.0.5响应。 我找不到任何问题,为什么发生这种情况。

任何想法?

谢谢

尝试使用

 config.redis = { url: "redis://bsc_redis:6379/0"} 

要么

 config.redis = { host: "bcs_redis", port: 6379, db: 0} 

两者都是有效的,但我想可能有一些问题,因为基于docker的dns在第一个sidekiq处理不好