phpMyAdmin kann bei der Verwendung von Docker-Compose keine Verbindung zu MySQL herstellen, es funktioniert mit "Docker Run"

2190
draconisin

Ich versuche gerade, einen neuen Server zu konfigurieren, auf dem Ubuntu 16.04 LTS ausgeführt wird.

Außerhalb des Dockers läuft eine Anwendung: Mein nginx Reverse Proxy / Webserver. Dies sollte nicht stören, da es nur an Port 80 und 443 überwacht. Der Zugriff auf die PMA-Schnittstelle funktioniert einwandfrei.

Derzeit laufen drei Docker-Container: ein PHP-FPM-Container (der die von nginx stammende PHP-Verarbeitung übernimmt), MySQL und phpMyAdmin. Alle drei werden von docker-compose erstellt. Die .yml-Datei sieht folgendermaßen aus:

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 

(Bitte ignorieren Sie die Massen der Bände, ich weiß, dass das schlecht ist)

Das funktioniert jetzt nicht. Beim Klicken auf Login im PMA-Login-Formular wird folgende Fehlermeldung angezeigt: #2002 - No such file or directory &mdash; The server is not respondingundmysqli_real_connect(): (HY000/2002): No such file or directory

Manuelles Ausführen des PMA-Containers mithilfe von sudo docker run --name myadmin -d -e PMA_HOST=sintra01 -p 8080:80 -p 8443:443 phpmyadmin/phpmyadmin

es funktioniert perfekt. Ich kann auch eine Verbindung zur Datenbank herstellen, indem Sie z. B. MySQL Workbench verwenden, unabhängig davon, ob Sie Compose oder Docker ausführen. Ich denke, der Täter muss in gewisser Weise Docker-Compose sein.

EDIT: OK, ich habe offenbar auch Auswirkungen auf den PHP-Container. Ich kann von keinem PHP-Skript aus eine Verbindung zur Datenbank herstellen.

0

0 Antworten auf die Frage