127.0.0.1
w Dockerze prawie zawsze oznacza „ten kontener”. Jeśli używasz aplikacji w Docker Compose, to
... konfiguruje jedną sieć dla Twojej aplikacji. Każdy kontener usługi dołącza do sieci domyślnej i jest dostępny przez inne kontenery w tej sieci i wykrywalne przez nich pod nazwą hosta identyczną z nazwą kontenera.
To znaczy w kontekście tego docker-compose.yml
pliku, istnieją nazwy hostów redis
i web
tym punktem na dwóch kontenerach.
Zrobiłeś już jedną z ważnych czynności konfiguracyjnych. Gdy twój kod mówi
REDIS_HOST = os.environ.get('REDIS_HOST', '127.0.0.1')
możesz ustawić zmienną środowiskową, która zastępuje wbudowaną wartość domyślną. Tutaj wystarczy dodać ustawienie zmiennej środowiskowej do pliku docker-compose.yml
plik:
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