version: '3' services: db: image: mysql:8.0.20 command: --default-authentication-plugin=mysql_native_password volumes: - "db_app:/var/lib/mysql" environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} ports: - 3306:3306 networks: - symfony php: build: context: . dockerfile: docker/php/Dockerfile args: TIMEZONE: ${TIMEZONE} volumes: - ./symfony/:/Users/admin/Downloads/symfony-docker-master/symfony networks: - symfony nginx: build: context: . dockerfile: docker/nginx/Dockerfile volumes: - ./symfony/:/Users/admin/Downloads/symfony-docker-master/symfony ports: - 8050:8050 networks: - symfony volumes: db_app: networks: symfony:La aplicación se inicia, se conecta a la base de datos a través de
DATABASE_URL=mysql://user:123@db:3306/dbPero al realizar migraciones por consola me sale el error
An exception occurred in driver: SQLSTATE[HY000] [2002] php_network_getaddr esses: getaddrinfo failed: nodename nor servname provided, or not knownSegún tengo entendido, debido al hecho de que la dirección se especifica en la conexión db.
¿Cómo hacer migraciones?
Debe ejecutar los comandos de la consola desde el interior de su contenedor php
docker-compose exec php bin/console doctrine:migrations:migrateDebe conectarse al nombre del contenedor.
Estos se pueden encontrar ejecutando docker container ls en su consola.
Es más fácil cuando especificas el nombre en tu archivo de redacción así:
services: db: container_name: db # This can be anything image: mysql:8.0.20