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:ininitialize' 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:inconfigure_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:instart' 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处理不好