我正在尝试通过Docker部署Django通道,而Django似乎找不到Redis(我将其用作通道层)。
在本地进行操作时,我只运行redis-server
并从设置中指向它:
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
'hosts': [('localhost', 6379)],
},
},
}
一切正常,Web套接字接受连接并可以轻松传输我的数据。对于生产环境,我使用以下docker配置:
version: "3"
services:
backend:
container_name: backend
restart: 'on-failure'
image: registry.testtesttest.com/app/backend:${BACKEND_VERSION:-latest}
ports:
- "8000:8000"
environment:
DJANGO_SETTINGS_MODULE: ${DJANGO_SETTINGS_MODULE:-settings.production}
DJANGO_SECRET_KEY: ${DJANGO_SECRET_KEY:-dev}
redis:
image: "redis:alpine"
ports:
-"6379:6379"
我指向生产设置中的redis:
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
'hosts': [('redis', 6379)],
},
},
}
在生产中,Django说:
在127.0.0.1:6379上找不到redis
我在做什么错?我是否需要添加任何其他服务来做docker-compose文件?
答案 0 :(得分:0)
您需要提供后端链接。
backend:
container_name: backend
restart: 'on-failure'
image: registry.testtesttest.com/app/backend:${BACKEND_VERSION:-latest}
ports:
- "8000:8000"
environment:
DJANGO_SETTINGS_MODULE: ${DJANGO_SETTINGS_MODULE:-settings.production}
DJANGO_SECRET_KEY: ${DJANGO_SECRET_KEY:-dev}
links:
- redis