Py学习  »  Redis

Docker中的Django Redis连接错误

soubhagya • 4 年前 • 781 次点击  

Django视图.py

导入Redis 导入JWT 从访问导入实用程序 导入操作系统 redis_url=os.environ['redis_uri'] r=redis.strictredis(redis_url) 定义集(请求): R.set('foo'、'bar') 返回jsonresponse(“code”:200,“msg”:“success”) < /代码>

Docker撰写

版本:“3”

服务:
rango:
容器名称:Rango
建筑:
命令:python backend/manage.py runserver 0.0.0.0:8000
#命令:npm start--前缀frontend/rango frontend/
工作目录:
环境:
redis-uri:redis://redis-db:6379
端口:
-“800:8000”
TTY:真的
链接:
-弹性搜索
-节点
-雷迪斯

弹性搜索
弹性搜索:
图片:Docker.Elastic.Co/ElasticSearch/ElasticSearch:6.5.0
端口:
-“9200∶9200”

α节点
节点:
图:节点:10.13.0

艾瑞迪斯
雷迪斯:
图片:瑞迪斯
环境:
-允许空密码=是
端口:
-“637 9:637”
< /代码> 

在这里,我正在连接Docker内Django的Redis。 它给了我一些被拒绝的例外。 请查看下面我的代码和共享屏幕截图

.

Docker撰写

version: "3"

services:
  rango:
    container_name: rango
    build: ./
    command: python backend/manage.py runserver 0.0.0.0:8000
    # command: npm start --prefix frontend/rango-frontend/
    working_dir: /usr/src/rango
    environment:
      REDIS_URI: redis://redis_db:6379
    ports:
      - "8000:8000"
    tty: true
    links:
      - elasticsearch
      - node
      - redis

  #elastic search
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.5.0
    ports:
      - "9200:9200"

  #node
  node:
    image: node:10.13.0

  #redis
  redis:
    image: redis
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
    ports:
      - "6379:6379"

在这里,我正在连接Docker内Django的Redis。 它给了我一些被拒绝的例外。 请查看下面我的代码和共享屏幕截图

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/37899
 
781 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Will Keeling
Reply   •   1 楼
Will Keeling    5 年前

默认情况下,Docker Compose使用与容器名称相同的主机名使容器可发现。因此,可以通过主机名发现Redis容器 redis . 但是,Django容器使用的是主机名 redis_db .

更新您的 docker-compose.yml 并且改变 REDIS_URI 要引用正确的主机名:

REDIS_URI: redis://redis:6379