Redis
 sql >> Datenbank >  >> NoSQL >> Redis

docker-compose + django + redis – Fehler 111 beim Verbinden mit 127.0.0.1:6379. Verbindung abgelehnt

127.0.0.1 bedeutet in Docker fast immer "dieser Container". Wenn Sie Ihre Anwendung unter Docker Compose ausführen, ist es

... richtet ein einziges Netzwerk für Ihre App ein. Jeder Container für einen Dienst tritt dem Standardnetzwerk bei und ist beide erreichbar durch andere Container in diesem Netzwerk und erkennbar von ihnen unter einem Hostnamen, der mit dem Containernamen identisch ist.

Das heißt, im Kontext dieser docker-compose.yml Datei gibt es Hostnamen redis und web diesen Punkt auf die beiden Container.

Sie haben bereits eine der wichtigen Konfigurationsaufgaben erledigt. Wenn Ihr Code sagt

REDIS_HOST = os.environ.get('REDIS_HOST', '127.0.0.1')

Sie können eine Umgebungsvariable festlegen, die den integrierten Standardwert überschreibt. Hier müssen Sie also nur eine Umgebungsvariableneinstellung zu Ihrer docker-compose.yml hinzufügen Datei:

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