2017-07-25 234 views
0

背景

运行在Docker容器中的php应用程序。使用docker-compose,这个容器与一个postgres数据库容器和许多其他容器一起运行在一个配置中。在Docker容器中运行PHPUnit并启动容器取决于:

试图在phpstorm中运行我的phpunit测试,我创建了一个运行PHP应用程序容器的Docker Remote Interpreter test configuration

问题

容器抱怨说,它无法连接到数据库,这当然是因为它在docker-compose.yml配置,而不是与PhpStorm使用单容器一起启动未启动。

尝试解决

  • 一个PHP Remote Debug可以使用部署,所以我试图创建一个Docker Deployment configuration它使用docker-compose.yml(因此开始所有容器),并为launched before PHPUnit的推出,但我不能选择这部署部署
  • 启动Docker编写容器,除了PHP应用程序以外的容器,并将其连接到它。这证明很困难,因为它们位于不同的网络中,所以php应用程序容器仍然抱怨没有找到数据库。我无法配置其中网络容器在PhpStorm中使用。

TL;博士

我PhpStorm项目是一个PHP应用程序。此应用程序可以在通过nginx服务的Docker容器中运行。我可以使用运行配置在容器中运行我的PHPUnit测试,但它也需要其他容器,它们不会自动启动。

问题

如何使用PHPStorm在一个PHP应用程序容器连同它取决于容器(在docker-compose.yml已经说明)运行PHPUnit测试?

+0

你可以创建一个脚本来启动组合而不是你的容器? 您也可以在开始工作时启动数据库,并且您的容器可以链接到它。 –

+0

查看[wait-for](https://github.com/Eficode/wait-for/blob/master/wait-for)脚本,它将在启动另一个容器之前等待特定容器。 – Ayushya

+0

@WassimDhif我已经创建了这样一个脚本,但是我不确定如何将PhpStorm中的_PHPUnit_运行配置调整为运行我的应用程序的特定容器。 –

回答

0

答案太长。我希望Jetbrains TV的5分钟视频能帮助你。

https://www.youtube.com/watch?v=I7aGWO6K3Ho

总之你需要:

    在PHPStorm
  1. 配置泊坞例如
  2. 从泊坞容器
  3. 配置PHPUnit的
  4. 配置新的PHP解释器来使用新的解释