GiLab CI - Redis :: CannotConnectError:在127.0.0.1:6379上连接到Redis时出错

问题描述 投票:2回答:1

很少有测试在管道中失败,错误Redis::CannotConnectError: Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED)

我的.gitlab-ci.yml文件

image: starefossen/ruby-node:latest

services:
  - mongo:latest
  - redis:latest

variables:
  MONGODB_URI: mongodb://mongo:27017/db_test
  REDISTOGO_URL: redis://localhost:6379

before_script:
  - bundle install --path=cache/bundler
  - cp config/mongoid.yml.gitlab config/mongoid.yml
  - RAILS_ENV=test bundle exec rake db:create db:migrate

test:
  script:
   - bundle exec rake test

我的config/initializers/sidekiq.rb文件

require 'sidekiq'
require 'sidekiq-status'

Sidekiq.configure_client do |config|
  config.redis = { size: 5, url: ENV['REDISTOGO_URL'] }
end

Sidekiq.configure_server do |config|
  config.server_middleware do |chain|
    chain.add Sidekiq::Throttler, storage: :redis
  end
  config.redis = { size: 10, url: ENV['REDISTOGO_URL'] }
end

谁能指出我正确的方向?谢谢

ruby-on-rails rspec redis gitlab-ci gitlab-ci-runner
1个回答
4
投票

Docker中没有一个本地主机可供Gitlab CI使用。惯例是,下面声明的服务名称可以通过它的名称在docker网络中的其他容器中使用 - 在这种情况下为redis

services:
  - redis:latest

所以用localhost取代redis就足够了:

variables:
-   REDISTOGO_URL: redis://localhost:6379
+   REDISTOGO_URL: redis://redis:6379
© www.soinside.com 2019 - 2024. All rights reserved.