Подключение pgadmin к postgres в докере - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть docker-compose файл со службами для python, nginx, postgres и pgadmin:

services:
  postgres:
    image: postgres:9.6
    env_file: .env
    volumes:
      - postgres_data:/var/lib/postgresql/data
    ports:
      - "5431:5431"

  pgadmin:
    image: dpage/pgadmin4
    links:
      - postgres
    depends_on:
      - postgres
    environment:
      PGADMIN_DEFAULT_EMAIL: admin@admin.com
      PGADMIN_DEFAULT_PASSWORD: pwdpwd
    volumes:
      - pgadmin:/root/.pgadmin
    ports:
      - "5050:80"

  backend:
    build:
      context: ./foobar  # This refs a Dockerfile with Python and Django requirements
    command: ["/wait-for-it.sh", "postgres:5431", "--", "/gunicorn.sh"]
    volumes:
      - staticfiles_root:/foobar/static
    depends_on:
      - postgres

  nginx:
    build:
      context: ./foobar/docker/nginx
    volumes:
      - staticfiles_root:/foobar/static
    depends_on:
      - backend
    ports:
      - "0.0.0.0:80:80"

volumes:
  postgres_data:
  staticfiles_root:
  pgadmin:

Когда я запускаю docker-compose up и посещаю localhost:5050, я вижу интерфейс pgadmin. Когда я пытаюсь создать там новый сервер с localhost или 0.0.0.0 в качестве имени хоста и 5431 в качестве порта, я получаю сообщение об ошибке «Не удалось подключиться к серверу». Если я удаляю их и вместо этого ввожу postgres в поле «Служба», я получаю ошибку «определение службы» postgres «не найден». Как я могу подключиться к базе данных с помощью pgadmin?

1 Ответ

0 голосов
/ 13 ноября 2018

Будьте внимательны, порт postgres по умолчанию - 5432, а не 5431. Вам следует обновить отображение портов для службы postgres в вашем файле compose. Неправильный порт может быть причиной проблем, о которых вы сообщили. Измените сопоставление портов и затем попытайтесь подключиться к postgres: 5432. localhost: 5432 не будет работать.

...