phpMyAdmin не работает с nginx-proxy - php_network_getaddresses

Я пытаюсь получить доступ к phpMyAdmin через образ Docker nginx-proxy, размещенный на моем VPS.

Когда я пытаюсь войти в phpMyAdmin, я получаю сообщение об ошибке: php_network_getaddresses: getaddrinfo failed: Name or service not known

сообщения об ошибках от phpMyAdmin

Файл docker-compose:

version: "3"

services:
  mysql:
    build:
      context: "./bin/mysql8"
    container_name: 'mysql'
    restart: 'always'
    ports:
      - "3306:3306"
    volumes: 
      - ./data/mysql:/var/lib/mysql
      - ./logs/mysql:/var/log/mysql
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: 'sc-phpmyadmin'
    links:
      - mysql
    environment:
      PMA_HOST: mysql
      PMA_PORT: 3306
      PMA_USER: ${MYSQL_USER}
      PMA_PASSWORD: ${MYSQL_PASSWORD}
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    expose:
      - 80
    environment:
       VIRTUAL_HOST: myadmin.example.com
       LETSENCRYPT_HOST: myadmin.example.com
    volumes: 
      - /sessions

networks:
  default:
    external:
      name: nginx-proxy

Соединение защищено с помощью letsencrypt-nginx-proxy-companion (рабочий правильно). Я уже читал эту ветку об ошибке https://github.com/jwilder/nginx-proxy/issues/596, но рабочего решения нет.


person alessionossa    schedule 24.02.2020    source источник


Ответы (1)


Это не должно быть проблемой прокси, поскольку соединение с pma происходит непосредственно на уровне сервера. Прокси-сервер никогда не узнает об этом. Поскольку вы можете получить доступ к контейнеру pma (вы можете увидеть страницу входа), настройка вашего прокси-сервера, похоже, работает правильно. Можете ли вы получить доступ к контейнеру mysql из контейнера pma?

Попробуйте запустить docker-compose exec phpmyadmin bash, чтобы оболочка работала внутри контейнера pma, и выполните ping mysql.

Вы также можете попробовать переименовать контейнер mysql в db, поскольку контейнер pma будет пытаться подключиться к базе данных на этом хосте по умолчанию.

Наконец, вы можете попробовать установить переменную PMA_ARBITRARY=1 env в контейнере pma, которая позволит вам подключаться к любому серверу mysql из него. Затем вы можете попробовать с mysql или db или около того.

(Также могло случиться так, что контейнер mysql еще не был готов и поэтому отклонил соединение - но это будет другое сообщение об ошибке).

person kolaente    schedule 24.02.2020