[PYTHON] Lorsque j'essaye de connecter django et postgresql avec Docker, j'obtiens l'erreur "django.db.utils.OperationalError: impossible de traduire le nom d'hôte" db "en adresse: Nom ou service inconnu"

Erreur

Lorsque vous essayez de créer un environnement de développement Django avec docker en regardant Quickstart: Compose et Django, docker-compose up` `` J'ai eu l'erreur suivante.

django.db.utils.OperationalError: could not translate host name "db" to address: Name or service not known

setting.py

setting.py


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': 'db',
        'PORT': 5432,
    }
}

Docker-compose.yml non modifié

Docker-compose.yml


version: '3'

services:
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db
  db:
    image: postgres

Docker-compose.yml modifié

docker-compose.yml


version: '3'

services:
    web:
        build: .
        command: python3 manage.py runserver 0.0.0.0:8000
        volumes:
            - .:/code
        ports:
            - "8000:8000"
        depends_on:
            - db
    db:
        image: postgres
        ports: 
            - "5432"
        environment:
          - POSTGRES_DB=postgres
          - POSTGRES_USER=postgres
          - POSTGRES_PASSWORD=postgres

L'erreur a maintenant disparu. Pour utiliser postgres dans Docker, vous devez configurer des informations telles que l'utilisateur de la base de données, le mot de passe et le nom de base de données. Cela peut être fait en définissant les variables d'environnement du conteneur dans environment dans le dokcer-compose.yml '' modifié.

Recommended Posts

Lorsque j'essaye de connecter django et postgresql avec Docker, j'obtiens l'erreur "django.db.utils.OperationalError: impossible de traduire le nom d'hôte" db "en adresse: Nom ou service inconnu"
Quand j'essaye d'installer mysqlclient avec Django, j'obtiens l'erreur: la commande 'gcc' a échoué avec l'état de sortie 1.
Lorsque j'essaye de me connecter à MySQL avec mysql-connector-python, je ne peux pas me connecter avec l'erreur "Erreur de connexion SSL: SSL_CTX_set_tmp_dh a échoué"
Lorsque j'essaye de mettre à jour les données sur DynamoDB avec Python (boto3), j'obtiens "ExpressionAttributeNames contient une clé invalide: Erreur de syntaxe; clé: <nom de clé>"
Lorsque j'essaye d'importer des pandas sur macOS, j'obtiens l'erreur No module named'_bz2 '
J'obtiens [Erreur 2055] en essayant de me connecter à MySQL avec Heroku
Vérifier quand le conteneur Docker ne se connecte pas à Internet
Obtenez le nom d'hôte du PC hôte avec Docker sous Linux
Lorsque j'essaye d'exécuter la commande pip après la mise à jour de pip, j'obtiens "No such file or directory"
Lorsque j'essaie d'exécuter la commande make de Makefile avec os / exec de golang, la deuxième exécution et les suivantes entraînent une erreur.
J'obtiens une erreur en essayant d'installer maec 4.0.1.0 avec pip