Невозможно назначить запрашиваемый адрес при подключении к Redis через Docker
Создаю контейнеры из моего проекта Django+Redis+React и получаю ошибку:
Error 99 connecting to localhost:49157. Cannot assign requested address.
Когда я посещаю url localhost:8000
Это мой docker-compose
файл:
version: "3.8"
services:
redis:
restart: always
image: redis:latest
ports:
- "6379:6379"
pairprogramming_be:
restart: always
depends_on:
- redis
command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
env_file:
- ./signup/.env
- ./payments/.env
- ./.env
build:
context: ./
dockerfile: Dockerfile
ports:
- "8000:8000"
container_name: "pairprogramming_be"
...
#Ошибка 99 при подключении к localhost:49153. Невозможно присвоить запрашиваемый адрес.
Это мой .env файл:
DEBUG=1
DJANGO_ALLOWED_HOSTS=0.0.0.0
мой Dockerfile:
FROM python:3
ENV PYTHONUNBUFFERED 1
WORKDIR django-project/peerplatform
COPY requirements.txt ./
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
COPY . ./
EXPOSE 8000
CMD ["python", "./manage.py", "runserver", "0.0.0.0:8000", "--settings=signup.settings"]
Вот мой settings.py на случай, если проблема здесь:
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://redis:6379",
# "TIMEOUT": 5 * 60,
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient"
},
"KEY_PREFIX": "pairprogramming"
}
}
...
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"LOCATION": "redis://redis:6379",
},
}
...
REDIS_HOST = 'redis://redis:6379'
REDIS_PORT = 6379
REDIS_PASSWORD = 'redispw'
Я столкнулся с той же проблемой, в контейнере Docker с аналогичным стеком. У меня еще не было времени решить ее, но в поисках ответа я нашел вот это, выглядящее многообещающе: https://medium.com/it-dead-inside/docker-containers-and-localhost-cannot-assign-requested-address-6ac7bc0d042b