복붙노트

[REDIS] 레일 + 고정 표시기 + sidekiq + 127.0.0.1:6379에 레디 스에 연결 오류 (errno를 :: ECONNREFUSED)

REDIS

레일 + 고정 표시기 + sidekiq + 127.0.0.1:6379에 레디 스에 연결 오류 (errno를 :: ECONNREFUSED)

고정 표시기 및 고정 표시기-작성과 응용 프로그램 내 레일을 실행하는 동안이 오류가 무엇입니까 127.0.0.1:6379에 레디 스에 연결 오류 (errno를 :: ECONNREFUSED)

내 도커 파일을 찾아주세요

# Copy the Gemfile as well as the Gemfile.lock and install
# the RubyGems. This is a separate step so the dependencies
# will be cached unless changes to one of those two files
# are made.
COPY Gemfile Gemfile.lock ./
RUN gem install bundler && bundle install --jobs 20 --retry 5

# Copy the main application.
COPY . ./app

# Expose port 3000 to the Docker host, so we can access it
# from the outside.
EXPOSE 3000

# The main command to run when the container starts. Also
# tell the Rails dev server to bind to all interfaces by
# default.
CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"]

내 고정 표시기-compose.yml 파일을 찾아주세요

version: "2"
services:
  redis:
    image: redis
    command: redis-server
    ports:
      - "6379:6379"
  postgres:
    image: postgres:9.4
    ports:
      - "5432"

  app:
    build: .
    command: rails server -p 3000 -b '0.0.0.0'
    volumes:
      - .:/app
    ports:
      - "3000:3000"
    links:
      - postgres
      - redis
      - sidekiq

  sidekiq:
    build: .
    command: bundle exec sidekiq
    depends_on:
      - redis
    volumes:
      - .:/app
    env_file:
      - .env

미리 감사드립니다!

해결법

  1. ==============================

    1.나는 고정 표시기-작성을 사용하고 난 .env의 파일에 추가

    나는 고정 표시기-작성을 사용하고 난 .env의 파일에 추가

    REDIS_URL=redis://redis:6379/0
    
  2. ==============================

    2.기본적으로 모든 서비스는 해당 서비스의 이름에서 다른 서비스에 도달 할 수 있습니다 - 링크가 통신 할 서비스를 활성화 할 필요가 없습니다.

    기본적으로 모든 서비스는 해당 서비스의 이름에서 다른 서비스에 도달 할 수 있습니다 - 링크가 통신 할 서비스를 활성화 할 필요가 없습니다.

    당신의 고정 표시기-compose.yaml 파일에 따르면 당신은 호스트 컴퓨터에서 127.0.0.1:6379에 컨테이너 레디 스에 액세스 할 수 있습니다.

    6379을 레일 응용 프로그램 컨테이너에서 : 당신은 레디 스에 레디 스 컨테이너에 액세스 할 수 있도록 컨테이너는 네트워크에서 서로 통신합니다.

  3. from https://stackoverflow.com/questions/48802444/rails-docker-sidekiq-error-connecting-to-redis-on-127-0-0-16379-errnoe by cc-by-sa and MIT license