sql >> Database >  >> NoSQL >> Redis

docker-compose + django + redis - Fout 111 bij verbinding met 127.0.0.1:6379. Verbinding geweigerd

127.0.0.1 in Docker betekent bijna altijd "deze container". Als u uw toepassing uitvoert onder Docker Compose, is het

... zet één netwerk op voor uw app. Elke container voor een service wordt lid van het standaardnetwerk en is beide bereikbaar door andere containers op dat netwerk, en vindbaar door hen op een hostnaam die identiek is aan de containernaam.

Dat wil zeggen, in de context van deze docker-compose.yml bestand, zijn er hostnamen redis en web die naar de twee containers wijzen.

Je hebt al een van de belangrijke configuratie-dingen gedaan. Wanneer uw code zegt

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

u kunt een omgevingsvariabele instellen die de ingebouwde standaardwaarde overschrijft. Dus hier hoef je alleen maar een omgevingsvariabele-instelling toe te voegen aan je docker-compose.yml bestand:

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


  1. Native MongoDB-maskering (3e methode)

  2. Stel MongoDb-converter programmatisch in

  3. mongodb 3.x-stuurprogramma Android-compatibiliteit

  4. MongoDB:Server heeft opstartwaarschuwingen ''Toegangscontrole is niet ingeschakeld voor de database''