127.0.0.1
в Docker почти винаги означава "този контейнер". Ако изпълнявате приложението си под Docker Compose, то
... настройва една мрежа за вашето приложение. Всеки контейнер за услуга се присъединява към мрежата по подразбиране и е достижим от други контейнери в тази мрежа и откриваеми от тях при име на хост, идентично с името на контейнера.
Тоест в контекста на този docker-compose.yml
файл, има имена на хостове redis
и web
тази точка в двата контейнера.
Вече сте направили едно от важните неща за конфигуриране. Когато кодът ви казва
REDIS_HOST = os.environ.get('REDIS_HOST', '127.0.0.1')
можете да зададете променлива на средата, която отменя вградената стойност по подразбиране. Така че тук просто трябва да добавите настройка на променлива на средата към вашия docker-compose.yml
файл:
version: '3'
services:
redis:
image: "redis:alpine"
web:
build: . # current directory
environment:
- REDIS_HOST=redis
ports:
- "8000:8000"
# application source code and default command are built into the image