在Docker容器中运行PHPUnit并启动容器取决于:
问题描述:
背景
运行在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测试?
答
答案太长。我希望Jetbrains TV的5分钟视频能帮助你。
https://www.youtube.com/watch?v=I7aGWO6K3Ho
总之你需要:
-
在PHPStorm
- 配置泊坞例如 从泊坞容器
- 配置PHPUnit的
- 配置新的PHP解释器来使用新的解释
你可以创建一个脚本来启动组合而不是你的容器? 您也可以在开始工作时启动数据库,并且您的容器可以链接到它。 –
查看[wait-for](https://github.com/Eficode/wait-for/blob/master/wait-for)脚本,它将在启动另一个容器之前等待特定容器。 – Ayushya
@WassimDhif我已经创建了这样一个脚本,但是我不确定如何将PhpStorm中的_PHPUnit_运行配置调整为运行我的应用程序的特定容器。 –