#python #django #docker #redis #django-channels
#python #django #docker #redis #django-каналы
Вопрос:
Я пытаюсь развернуть каналы django с помощью Docker, и Django, похоже, не находит Redis (который я использую в качестве уровня канала).
Когда я делаю это локально, я просто запускаю redis-server
и указываю на него из настроек:
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
'hosts': [('localhost', 6379)],
},
},
}
Все работает нормально, веб-сокеты принимают соединения и легко передают мои данные. Для производственной среды я использую эту конфигурацию 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 говорит:
Не удается найти redis на 127.0.0.1:6379
Что я делаю не так? Нужно ли добавлять какие-либо дополнительные сервисы для создания файла docker-compose?
Комментарии:
1. Измените
'localhost'
имя контейнера redis.2. @KlausD. это ‘redis’, локальный хост, который я использую только для среды разработки. В моем ответе есть производственная конфигурация.
3. Имя контейнера обычно содержит подчеркивание в docker-compose.
4. @KlausD. как это должно отображаться для моей настройки docker?
5.
docker ps
или посмотрите название в выходных данныхdocker-compose up
.
Ответ №1:
Вам нужно предоставить ссылки для серверной части.
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