phpMyAdmin não pode se conectar ao mysql ao usar o Docker-Compose, ele funciona usando “docker run”

0

No momento, estou tentando configurar um novo servidor que executa o Ubuntu 16.04 LTS.

Existe um aplicativo em execução fora da janela de encaixe: Meu proxy reverso / servidor nginx. Isso não deve interferir porque só escuta nas portas 80 e 443. O acesso à interface PMA funciona bem.

Atualmente, há 3 Contêineres do Docker em execução: um Contêiner do PHP-FPM (que lida com o processamento do php vindo do nginx), MySQL e phpMyAdmin. Todos os 3 deles são criados pelo docker-compose, o arquivo .yml tem a seguinte aparência:

version: "3"
services:
  php-fpm:
    build:
      context: /srv/docker/dockerfiles/php-fpm
    image: php-fpm:latest
    ports:
      - 9000:9000
    volumes:
      - "/srv/docker/volumes/php-fpm/config/:/usr/local/etc/php/"
      - "/srv/docker/volumes/php-fpm/ssh/:/root/.ssh/"
      - "/srv/www/:/srv/www/"
      - "/srv/docker/volumes/php-fpm/logs/:/var/log/php-fpm/"
    restart: unless-stopped

  mysql:
    image: mysql/mysql-server:latest
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=<insert secure password>
      - MYSQL_ROOT_HOST=sintra01
    volumes:
      - "/srv/docker/volumes/mysql/:/var/lib/mysql"
    restart: unless-stopped

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    ports:
      - 8080:80
      - 8443:443
    environment:
      - PMA_HOST=sintra01
      - PMA_PORT=3306
    volumes:
      - "/srv/docker/volumes/phpmyadmin/config/:/etc/phpmyadmin/"
    restart: unless-stopped

(por favor, ignore as massas de volumes, eu sei que isso é ruim)

Agora, isso não funciona. Ao clicar em login no formulário de login da PMA, a seguinte mensagem de erro aparece: #2002 - No such file or directory &mdash; The server is not responding e mysqli_real_connect(): (HY000/2002): No such file or directory

Execução manual do contêiner PMA usando sudo docker run --name myadmin -d -e PMA_HOST=sintra01 -p 8080:80 -p 8443:443 phpmyadmin/phpmyadmin

funciona perfeitamente. Eu também posso conectar-me ao DB usando, por exemplo, MySQL Workbench, independentemente da utilização de compor ou docker run. Então eu acho que o culpado tem que ser docker-compose de alguma forma.

EDIT: OK, eu aparentemente também afeta o contêiner do php. Não consigo me conectar ao banco de dados a partir de qualquer script php.

    
por draconisin 15.11.2017 / 16:07

0 respostas