2017-07-25 230 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解釋器來使用新的解釋