我正在尝试在Docker上设置Symfony4项目,除Doctrine CLI功能外,其他所有功能均正常工作。当我通过CLI运行命令时,它似乎无法连接到数据库。 phpMyAdmin和项目本身可以很好地连接到数据库。
运行命令时出现错误:
php bin/console doctrine:migrations:diff
PDO :: __ construct():php_network_getaddresses:getaddrinfo失败: 提供的节点名或服务名,或者未知
这是我的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)%'
.env文件中的数据库URL是:
DATABASE_URL=mysql://root:root@mysql:3306/sf4
我试图将mysql更改为DATABASE_URL配置的localhost或IP地址,但没有帮助。有什么想法吗?
答案 0 :(得分:0)
似乎我正在从计算机的命令行运行CLI命令。所以首先我必须使用
连接到我的Docker容器docker-compose exec php bash
然后所有命令运行正常。 :)