Трех контейнерная докер-композиция: PHP не может подключиться к Maria DB - PullRequest
0 голосов
/ 04 марта 2019

Мой docker-compose.yml:

version: '3'
services:
    php-apache:
        build:
            context: ./php-apache
        ports:
            - 80:80
        volumes:
            - ./DocumentRoot:/var/www/html
        links:
            - 'db'
        networks:
            - default

    db:
        image: mariadb:10.1
        volumes:
            - ./db:/var/lib/mysql
            - ./dump.sql:/docker-entrypoint-initdb.d/dump.sql            

        ports: 
            - "3306:3306"            
        environment:
            TZ: "Europe/London"
            MYSQL_ALLOW_EMPTY_PASSWORD: "no"
            MYSQL_ROOT_PASSWORD: "rootpwd"
            MYSQL_USER: 'testuser'
            MYSQL_PASSWORD: 'testpassword'
            MYSQL_DATABASE: 'testdb'
        networks:
            - default

    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        links: 
            - 'db'
        ports:
            - 8000:80
        environment:
            MYSQL_USER: 'testuser'
            MYSQL_PASSWORD: 'testpassword'
            MYSQL_ROOT_PASSWORD: 'rootpwd'
            PMA_HOST: db
            PMA_PORT: 3306

Это основано на учебнике, который я нашел в Интернете.

Когда я его запускаю, я вижу, что контейнер PHP работает.Я вижу, что db и php-mydmin работают.Фактически я могу успешно получить доступ к БД из php-myadmin, используя учетные данные testuser / testpassword.

Но когда я пытаюсь получить доступ к БД из основного приложения PHP, используя

$conn = mysqli_connect("localhost","testuser",'testpassword','testdb'); 

, я получаю

Warning: mysqli_connect(): (HY000/2002): No such file or directory in /var/www/html/index.php on line 8

Это проблема с конфигурацией докера?Кто-нибудь может увидеть что-то пропавшее?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...