我试图通过PhpStorm运行控制台运行教义2的控制台脚本。Docker设置为部署服务器。
如果我运行这个:
$docker execcontainer_name /var/www/vendor/bin/doctrine-moduleorm:模式工具:创建
它打印:
没有要处理的元数据类。
但是当我在PhpStorm:File:/home/username/PhpstormProjects/proj/vendor/bin/doctor模块中运行PHP运行/调试配置时
它打印:
docker://image_name/container_name/var/www/vendor/bin/doctrine模块
致命错误:未捕获PDO异常: PDO::__construct():php_network_getaddresses: getaddrinfo失败:名称或服务不知道 /var/www/vendor/zendframework/zend-servicemanager/src/ServiceManager.php行765
Zend\ServiceManager\Exception\ServiceNotCreateException:无法创建名为“条令.连接.orm_默认值”的服务。原因:驱动程序SQLSTATE[HY000][2002]php\u network\u getaddresses:getaddrinfo失败:名称或服务在/var/www/vendor/zendframework/zend servicemanager/src/servicemanager中未知。php在线765
调用堆栈:0.0001 349368 1。{main}() /var/www/vendor/doctrine/doctrine-module/bin/doctrine-module:0 0.0268 360480 2。包括('/var/www/供应商/学说/学说-模块/bin/doctrine-module.php') /var/www/vendor/doctrine/doctrine-module/bin/doctrine-module:4 0.9376 4076096 3。Zend\ServiceManager\ServiceManager-
进程完成,退出代码255
我检查了当PDO创建时,它接收绝对相同的参数
newpdo(“mysql:host=db;port=3306;dbname=dbname”、“user”、“pass”、[]))
docker撰写。yml:
version: '2'
services:
nginx:
container_name: nginx
build:
context: .
dockerfile: DockerfileNginx
ports:
- "80:80"
depends_on:
- php
working_dir: /var/www
links:
- php
volumes:
- .:/var/www
links:
- db
php:
container_name: php
build:
context: .
dockerfile: DockerfilePhp
- db
volumes:
- .:/var/www
expose:
- "9000"
depends_on:
- db
db:
container_name: db
image: "mysql:5.6"
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: pass
MYSQL_DATABASE: dbname
MYSQL_USER: user
MYSQL_PASSWORD: pass
我也遇到了同样的问题,我发现PHPStorm为您的PHP调用启动了一个新的专用Docker容器。因此,此时缺少所有docker compose配置。
我做了以下工作:
docker network ls
查找您的网络名称(请参阅无法链接到docker compose启动的正在运行的容器以获取帮助)