PhpStorm Docker PHPUnit Database

10
  • 我已经设置了 PhpStorm: PHP, PHPUnit with Docker
  • 我在 PhpStorm/数据库查看器中看到模式
  • 我可以在我的应用程序中使用数据库:注册等
  • 我可以在 PhpStorm 中运行 phpunit
  • 但是,如果我想在测试中使用数据库,那么我会得到以下错误:

Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name does not resolve (SQL: select * from tablename)

测试在容器中正常工作,但在 IDE 中出现错误。 你有任何关于 PhpStorm 的问题的想法吗?


1
你找到解决方案了吗? - Harti
我也在寻找解决方案。 - mik3fly-4steri5k
我终于解决了这个问题。主机名中有一个 nbsp 字符.... - mik3fly-4steri5k
3个回答

10

我曾经遇到过这个问题。假设您已经设置好了Docker容器和PHP解释器,以下是我让它连接到MySQL容器的方法:

  1. 在CLI中运行docker network ls并看到“lighthouse_default”网络
  2. 进入 PHP > Test Frameworks 并编辑(点击文件夹)我的 Docker 容器
  3. 将网络模式设置为“lighthouse_default”
  4. 将 lighthouse_mysql_1 映像添加到链接部分

显然,在您的情况下,网络名称可能会有所不同。真正的关键是要确保我正在使用正确的网络,并确保数据库映像位于容器链接中。


3
对于我来说也是这样解决的,适用于laradock(步骤1-3,跳过第4步)。网络名称为“ laradock_backend”。 - Adrian Piechota

6

是的,我使用docker-compose和不同容器中的数据库。 - T1k3
请确保您的MySQL容器正在运行。似乎Phpstorm无法自动启动MySQL容器。 - J_Heimbach

2

I have a same problem and found solution:

Go to:

Settings > Languages & Frameworks > PHP > Test Frameworks

打开:

Edit docker container settings (you need push on folder icon)

在打开的窗口中,您会找到“链接”部分,从列表中添加您的数据库容器,保存后一切都正常!
如果您因网络配置不同而出现错误,请在每个容器中添加以下语句来更新您的docker-compose.yml:
network_mode: bridge

我觉得根据我所了解的情况,这个方法在当前的Docker版本中已经不再适用了,因为"link"现在被视为一个过时的功能。当我在PHPStorm上尝试时,会一直显示"加载容器名称...",而且我无法选择任何内容。 不过,@Jason Adams提供的解决方案对我来说有效。 - progzy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接