Как правильно связать мой php (symfony) контейнер с контейнером mysql? - PullRequest
0 голосов
/ 07 апреля 2019

Я пытался соединить php-контейнер с symfony 4 с контейнером mysql, и я получил эту ошибку:

An exception occurred in driver: SQLSTATE [HY000] [2002] php_network_getaddresses: getaddrinfo failed: Unknown host.

Я могу соединиться с mysql через phpmyadmin.

Это мой докер-compose.yml:

version: '3'
services:
    mysql:
        image: mysql
        command:
            - "--default-authentication-plugin=mysql_native_password"
        container_name: sf4_mysql
        volumes:
            - .docker/data/db:/var/lib/mysql
        environment:
            MYSQL_ROOT_PASSWORD: root
            MYSQL_DATABASE: sf4
            MYSQL_USER: sf4
            MYSQL_PASSWORD: sf4

    php:
        build: .docker/php
        container_name: sf4_php
        volumes:
          - .:/home/wwwroot/sf4
        environment:
          - maildev_host=sf4_maildev
        depends_on:
          - maildev
          - mysql

    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        container_name: sf4_phpmyadmin
        environment: 
            PMA_HOST: mysql
            PMA_PORT: 3306
        ports:
            - 8080:80
        links:
            - mysql

и файл .env

DATABASE_URL=mysql://sf4:sf4@mysql/sf4

Это мой файл doctrine.yaml.Я удалил ненужные комментарии.

parameters:
    env(DATABASE_URL): ''

doctrine:
    dbal:
        driver: 'pdo_mysql'
        server_version: '8.0'
        charset: utf8mb4
        default_table_options:
            charset: utf8mb4
            collate: utf8mb4_unicode_ci

        url: '%env(resolve:DATABASE_URL)%'
    orm:
        auto_generate_proxy_classes: '%kernel.debug%'
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true
        mappings:
            App:
                is_bundle: false
                type: annotation
                dir: '%kernel.project_dir%/src/Entity'
                prefix: 'App\Entity'
                alias: App

Это мой текущий репозиторий Заранее благодарю за помощь.

1 Ответ

0 голосов
/ 07 апреля 2019

Порт отсутствует.

Попробуйте

DATABASE_URL=mysql://sf4:sf4@mysql:3306/sf4

Напоминание:

Обязательно выполните команды Symfony изнутри контейнера после входа в систему с помощью команды:

docker-compose exec php bash
...