繁体   English   中英

连接到 redis://redis:6379:6379 时出现错误 -2。 名称或服务未知

[英]Error -2 connecting to redis://redis:6379:6379. Name or service not known

我希望对我所缺少的有所了解,目前正在尝试使用 python (数据库包装器的海象)和 redis 图像运行 docker-compose 配置,但我一直收到相同的错误:

redis.exceptions.ConnectionError:连接到 redis://redis:6379 时出现错误 -2。 名称或服务未知。

我尝试了不同的堆栈溢出解决方案来解决这个问题,但仍然没有任何效果。

以下是相关的 docker-compose 配置:

version: '3.3'

services:

    redis:
      image: redis:latest
      container_name: redis
      ports:
        - "6379:6379"
      command: ["redis-server"]
      entrypoint: redis-server --appendonly yes

    consumers:
      build: ./consumers
      container_name: consumers
      environment:
        - REDIS_HOST=redis://redis
      command:  "./run.sh"
      depends_on:
        - redis
      restart: always
      tty: true


networks:
  default:
    driver: bridge

Dockerfile:

FROM python:3.10

WORKDIR /consumers

# Copy Dependencies
COPY requirements.txt requirements.txt
COPY run.sh .

# Install Dependencies
RUN pip install -r requirements.txt

COPY . .
ENV REDIS_HOST=redis://redis
RUN chmod a+x run.sh

# Run executable consumer.py
CMD [ "./run.sh"]

并在 python 中使用海象连接到 redis:

rdb = Database(host=os.getenv("REDIS_HOST", "localhost"), port=6379)

在本地没有 docker 的设置工作正常。 在这种情况下,任何方向都将不胜感激。

谢谢

以下配置使其工作,删除入口点,创建新的自定义网络和公开端口。 REDIS_HOST 修改为 redis 即容器名称。 所有这些都使它起作用,但是在仅尝试其中一种时,问题仍然存在。

version: '3.5'

services:

    redis:
      image: redis:latest
      container_name: redis
      ports:
        - "6379:6379"
      expose: 
        - 6379:6379
      command: ["redis-server"]
      networks:
        - connections

    
    consumers-g1:
      build: ./consumers
      container_name: consumers-g1
      environment:
        - REDIS_HOST=redis
      command: "./run.sh"
      expose: 
        - 6379:6379
      networks:
        - connections
      restart: always
      tty: true


networks:
  connections:
    name: connections
    driver: bridge

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM