MySQL соединение Symfony + Docker - PullRequest
1 голос
/ 14 мая 2019

Я использую Docker для разработки проекта Symfony, и у меня проблема с MySQL.Вот моя конфигурация в моем .env symfony:

DATABASE_URL=mysql://bpp:bpp@127.0.0.1:3306/bdd

, когда я запускаю команду php bin / console d: s: u - принудительно обновляет базу данных.К минусам, когда я хочу зарегистрировать форму, у меня ошибка соединения Symfony

error sf4

Вот мой конфигурационный докер:

version: '3.7'
services:
  apache:
    build: .docker/apache
    container_name: bpp_apache
    ports:
      - "80:80"
    volumes:
      - .docker/config/vhosts:/etc/apache2/sites-enabled
      - ${SYMFONY_APP}:/home/wwwroot/bpp
    depends_on:
      - php
  mysql:
    image: mysql:8
    container_name: bpp_mysql
    volumes:
      - ./.docker/data/db:/var/lib/mysql
    command:
      - "--default-authentication-plugin=mysql_native_password"
      - "--lower_case_table_names=1"
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    ports:
      - "3306:3306"
  php:
    build: .docker/php
    container_name: bpp_php
    volumes:
      - ${SYMFONY_APP}:/home/wwwroot/bpp
    depends_on:
      - mysql
    links:
      - mysql
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: bpp_phpmyadmin
    environment:
      PMA_HOST: mysql
      PMA_PORT: 3306
    ports:
      - "8080:80"

Спасибо за помощь.

1 Ответ

1 голос
/ 14 мая 2019

Изменение конфигурации .env для mysql url от

DATABASE_URL=mysql://bpp:bpp@127.0.0.1:3306/bdd

до

DATABASE_URL=mysql://bpp:bpp@mysql:3306/bdd

Причина кроется в самом докере. Вы подключаете две службы: PHP и MySql, которые работают на разных IP-адресах внутри сети докеров. Каждый раз, когда вы запускаете файл Docker, вы запускаете 3 контейнера:

  1. Apache - IP-адрес 1
  2. PHP - IP-адрес 2
  3. MySql - IP-адрес 3

А служба MySql не находится по адресу 127.0.0.1. Оставьте это встроенному DNS-серверу.

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