#php #mysql #docker #orm #doctrine
#php #mysql #docker #orm #доктрина
Вопрос:
В основном у меня проблема с doctrine. Я впервые настраиваю проект на контейнерах docker, используя doctrine и mysql.
Итак, у меня есть docker-compose.yml
version: '3'
services:
api:
build:
context: ./
dockerfile: Dockerfile
container_name: php
depends_on:
- database
volumes:
- ./:/var/www/html/
ports:
- 8000:80
networks:
- backend
database:
container_name: mysql
image: mysql:8
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
MYSQL_USER: user
MYSQL_PASSWORD: Test1234
ports:
- 3306:3306
networks:
- backend
networks:
backend:
driver: bridge
и это мой Dockerfile
FROM php:7.4.12-apache
RUN apt-get update amp;amp; apt-get upgrade -y
amp;amp; docker-php-ext-install mysqli pdo_mysql
RUN apt-get install -y libzip-dev
RUN docker-php-ext-install zip
# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
EXPOSE 80
мой .env выглядит так (rest комментируется # в начале)
APP_ENV=dev
APP_SECRET=00b8dcf4c62a3db98abc4ae12dc4a6fd
DATABASE_URL=mysql://user:Test1234@localhost:3306/bf_db
обратите внимание, что нет разницы между localhost или 127.0.0.1 в DATABASE_URL
теперь, когда я хочу запустить эту команду: docker-compose exec api php bin/console doctrine:database:create
Я получаю такого рода ошибки:
[error] Error thrown while running command "doctrine:database:create".
Message: "An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused"
In AbstractMySQLDriver.php line 112:
An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused
In Exception.php line 18:
SQLSTATE[HY000] [2002] Connection refused
In PDOConnection.php line 38:
SQLSTATE[HY000] [2002] Connection refused
И я действительно не знаю, как с этим справиться
Ответ №1:
нет разницы между localhost или 127.0.0.1 в DATABASE_URL
Потому что они относятся к PHP contianer, а не к другому контейнеру.
Это должно быть database:3306