127.0.0.1
v Dockeru téměř vždy znamená „tento kontejner“. Pokud svou aplikaci spouštíte pod Docker Compose,
... nastaví jednu síť pro vaši aplikaci. Každý kontejner pro službu se připojí k výchozí síti a obě jsou dosažitelné jinými kontejnery v této síti a zjistitelné od nich pod názvem hostitele identickým s názvem kontejneru.
Tedy v kontextu tohoto docker-compose.yml
soubor, existují názvy hostitelů redis
a web
ten bod u dvou kontejnerů.
Jednu z důležitých konfiguračních věcí jste již provedli. Když váš kód říká
REDIS_HOST = os.environ.get('REDIS_HOST', '127.0.0.1')
můžete nastavit proměnnou prostředí, která přepíše vestavěnou výchozí hodnotu. Zde tedy stačí přidat nastavení proměnné prostředí do souboru docker-compose.yml
soubor:
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