Как открыть базу данных Postgres, созданную с помощью Docker в клиенте базы данных? - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть вопрос о том, как открыть базу данных, созданную с помощью Docker, используя https://github.com/cookiecutter/cookiecutter в клиенте базы данных

image 1

изображение 2

изображение3

СОЗДАТЬ ЛОКАЛЬНЫЙ ФАЙЛ

version: '3'

volumes:
  local_postgres_data: {}
  local_postgres_data_backups: {}

services:
  django:
    build:
      context: .
      dockerfile: ./compose/local/django/Dockerfile
    image: tienda_local_django
    depends_on:
      - postgres
    volumes:
      - .:/app
    env_file:
      - ./.envs/.local/.django
      - ./.envs/.local/.postgres
    ports:
      - "8000:8000"
    command: /start

  postgres:
    build:
      context: .
      dockerfile: ./compose/production/postgres/Dockerfile
    image: tienda_production_postgres
    volumes:
      - local_postgres_data:/var/lib/postgresql/data
      - local_postgres_data_backups:/backups
    env_file:
      - ./.envs/.local/.postgres

Ответы [ 2 ]

0 голосов
/ 20 сентября 2019

У вас нет сети между контейнерами / сервисами в docker-compose:

Вы можете достичь этого несколькими способами:

  1. связь между контейнерами / сервисами .Это устаревший способ, но зависит от версии докера, которая все еще работает.Добавьте в свой файл docker-compose:
django:
  ...
  links:
   - postgres
Подключение служб к одной сети .Добавьте к обоим определениям своих служб:
networks:
     - django

Кроме того, вам необходимо определить сеть django в файле docker-compose

networks
  django:
Подключите свои услуги через хост-сеть .Просто добавьте к обеим службам определение:
network: host
0 голосов
/ 20 сентября 2019

Порт на контейнере сопоставлен?Попробуйте использовать 127.0.0.1 (при условии, что он находится на той же машине), что и хост локального клиента, а не имя контейнера.Если это не работает, вы можете поделиться своим docker-compose.yaml

...