복붙노트

[REDIS] 어떻게 도커 작성을 사용하여 레디 스 용기에 연결?

REDIS

어떻게 도커 작성을 사용하여 레디 스 용기에 연결?

이 고정 표시기 - compose.yml 작업 확인을 것 같다 :

version: '3'
services:
  web:
    image: web-app
    command: bundle exec rackup
    ports:
     - "9292:9292"
    links:
      - redis
  redis:
    image: redis

명령:

docker build -t web-app .; docker-compose up

웹 응용 프로그램은 REDIS_URL의 설정을 기대하고있다. 웹 응용 프로그램 Dockerfile :

ENV REDIS_URL redis:6379

이 웹 응용 프로그램은 레디 스에 연결할 수없는 것 같습니다 :

Redis::CannotConnectError - Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED):

그래서, 웹 응용 프로그램의 레디 스 URL은 무엇인가?

나는 레디 스 포트 (6379)를 노출해야합니까?

편집하다:

// 6379 : @Andy 쉰 덕분에, 나는 레디 스 URL이 레디 스해야 참조하십시오. 지금은 errno를 :: EINVAL을 얻을 - 잘못된 인수 - 0.0.24.235:6379 (2) 연결합니다. 이 레디 스의 V 3.2.8와 함께 할 수 있습니다. 나는 다른 버전을 시도하고 작동하는지 확인할 수 있습니다.

편집 # 2 :

이 문제되지 않도록 3.2.8, 내 로컬 컴퓨터에있는 응용 프로그램과 함께 잘 작동합니다.

해결법

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

    1.문제는 레디 스가 Dockerfile 보간한다 "변수"라는 것이다.

    문제는 레디 스가 Dockerfile 보간한다 "변수"라는 것이다.

    ENV REDIS_URL redis:6379
    

    그러나 레디 스 URL은 문자 레디 스 시작해야합니다.

    그래서, 수정은 고정 표시기의 작성을 업데이트하고 있습니다 :

    redis_db:
      image: redis:3.2.8
    

    원하는 설정은 다음과 같습니다

    REDIS_URL=redis://redis_db:6379
    

    저를 도와 주셔서 BMitch 앤디 쉰 덕분에이 밖으로 그림.

  2. from https://stackoverflow.com/questions/42376867/how-to-connect-to-a-redis-container-using-docker-compose by cc-by-sa and MIT license