Имя Doctrine или имя сервера не предоставлены или не известны в Docker - PullRequest
0 голосов
/ 07 апреля 2019

Я пытаюсь настроить проект Symfony4 на Docker, все работает, кроме функций Doctrine CLI.Кажется, что он не может подключиться к базе данных, когда я запускаю команды через CLI.phpMyAdmin и сам проект подключаются к БД просто отлично.

Ошибка, которую я получаю, когда запускаю команду:

php bin/console doctrine:migrations:diff

PDO :: __ construct (): php_network_getaddresses: сбой getaddrinfo: nodename norИмя сервера указано или не известно

Вот мой файл docker-compose.yml:

version: '3'
services:
    apache:
        build: .docker/apache
        container_name: sf4_apache
        ports:
          - 80:80
        volumes:
          - .docker/config/vhosts:/etc/apache2/sites-enabled
          - .:/home/wwwroot/sf4
        depends_on:
          - php

    mysql:
      image: mysql
      command: "--default-authentication-plugin=mysql_native_password"
      container_name: sf4_mysql
      restart: always
      volumes:
        - ./data/db/mysql:/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
        links:
          - mysql

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

    maildev:
        image: djfarrelly/maildev
        container_name: sf4_maildev
        ports:
          - 8001:80

И doctrine.yaml:

doctrine:
    dbal:
        # configure these for your database server
        driver: 'pdo_mysql'
        server_version: '8.0.15'
        charset: utf8mb4
        default_table_options:
            charset: utf8mb4
            collate: utf8mb4_unicode_ci

        url: '%env(resolve:DATABASE_URL)%'

URL базы данныхв файле .env:

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

Я пытался изменить mysql на localhost или IP-адрес для конфигурации DATABASE_URL, но это не помогло.Есть идеи?

1 Ответ

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

Похоже, что я запускал команду CLI из командной строки моего компьютера. Итак, сначала я должен был подключиться к своему контейнеру Docker, используя

docker-compose exec php bash

И тогда все команды работают нормально. :)

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