docker - 在 vagrant 上的 PHP docker 容器中使用 PHPUnit 的 PhpStorm
问题描述
我有一个带有几个容器的 Vagrant 盒子,一个容器用于 PHP 引擎。
通常,我在 Vagrant 框中运行我的测试,例如:
docker run <my_specific_parameteres> remote.docker.container.php7.2 bin/phpunit --coverage-clover -c phpunit.xml.dist
但是,我想用 PhpStorm 运行它。有可能的?如果是的话,任何帮助,因为我不知道如何正确配置我的 PhpStorm 以根据需要运行 PHPUnit。
解决方案
这有点复杂,因为有一个额外的虚拟化层(主机 => Vagrant VM => Docker),但这是可能的。
让我们就这些达成一致:
/home/PhpstormProjects/theProject
是您的源在主机上的路径。/var/www/html/theProject
是您的源映射到的 Vagrant VM 路径。/opt/theProject
是 Vagrant 路径与卷映射绑定到的容器路径。
首先,您需要配置 Docker 守护程序以侦听 TCP 端口: https ://success.docker.com/article/how-do-i-enable-the-remote-api-for-dockerd
然后,您需要在 PhpStorm 添加这些 Docker 服务器Settings | Build, Execution, Deployment | Docker
。
之后,在 PhpStorm 中使用所需的镜像添加一个 Docker 远程解释器Settings | Languages & Frameworks | PHP
。
您需要稍后设置以下映射:
- 码头集装箱 | 卷绑定:
- 容器路径:
/opt/theProject
- 主机路径:
/var/www/html/theProject
- 容器路径:
- 路径映射:添加一个新的映射(因为默认的不正确):
- 本地路径:
/home/PhpstormProjects/theProject
- 远程路径:
/opt/theProject
- 本地路径:
之后,为这个 Docker 解释器配置 PHPUnit Settings | Languages & Frameworks | PHP | Test Frameworks
,它应该能够解析路径 OK。
基本上就是这样,你应该好好去。不幸的是,没有将自定义参数传递给 Docker 的选项:https ://youtrack.jetbrains.com/issue/IDEA-181088
如果有任何问题,请提交支持请求:https ://intellij-support.jetbrains.com/hc/en-us
推荐阅读
- python - Python Turtle 如何编程让它自动下降?
- symfony - EasyAdminBundle: how to redirect back to form
- vba - 用 Unicode 代码替换字符的宏仅部分工作
- javascript - 使用 JavaScript 的简单计算器
- nginx - 如何为 modsecurity 规则集执行生成电子邮件警报
- tensorflow - 以可编辑模式安装 tensorflow
- xml - 当有集合/列表和单个元素时在 C# 中反序列化 XML
- unity3d - UNITY - 使用 Raycast 选择对象 - 适用于 Windows,WebGL 错误(触摸屏)
- database - Azure DTU Calculation
- swift - 无法在 Swift 中为电话构建 URL