php - 使用docker-compose中的docker远程解释器在Intellij中运行PHPUnit期望 “/opt/project”中的项目

标签 php docker intellij-idea docker-compose phpunit

我在IntelliJ(2019.3.2,Build#IU-193.6015.39)中加载了一个具有以下结构的PHP symfony项目(省略了与README等无关的文件):

<project_root>
+- src/
+- tests/
+- vendor/
|  +- autoload.php    
+- .env
+- composer.json
+- composer.lock
+- docker-compose.yml
+- Dockerfile
+- phpunit.xml
+- phpunit-custom.xml

通过docker-compose将项目解释器设置为使用远程docker(适用于Mac的Docker),并且IntelliJ可以正确检测到解释器和调试器:
enter image description here

docker-compose.yml具有以下结构:
version: "2"

services:
    app:
        build: .
        env_file:
            - ./.env
        ports:
            - 8888:80
        volumes:
            - ./:/var/www/
            - .docker/app-dev/nginx/fastcgi-timeouts.conf:/etc/nginx/fastcgi-timeouts.conf
            - .docker/app-dev/php/conf.d/00_opcache.ini:/etc/php/conf.d/00_opcache.ini
            - .docker/app-dev/php/conf.d/30_xdebug.ini:/etc/php/conf.d/30_xdebug.ini
            - .docker/app-dev/php/php-fpm-settings.conf:/etc/php/php-fpm-settings.conf

    db:
        image: mysql:5.6
        environment:
            MYSQL_DATABASE: project_database
            MYSQL_USER: user
            MYSQL_PASSWORD: password
            MYSQL_ROOT_PASSWORD: master_password
        ports:
            - 3306:3306
        volumes:
            - mysql-data:/var/lib/mysql:delegated
            - .docker/db/mysqld.cnf:/etc/mysql/conf.d/mysqld.cnf
            - .docker/db/000-structure.sql:/docker-entrypoint-initdb.d/000-structure.sql
            - .docker/db/001-data.sql:/docker-entrypoint-initdb.d/001-data.sql
            - .docker/db/002-test-data.sql:/docker-entrypoint-initdb.d/002-test-data.sql

volumes:
    mysql-data:


因此,将项目安装到容器的/var/www中。用docker-compose up -d分解项目后,可以按预期在http://localhost:8888上访问它。但是通过IntelliJ运行单元测试不起作用,因为结果命令期望在容器的/opt/project文件夹中进行配置:

[docker-compose://[/Users/me/projects/symfony_with_db/docker-compose.yml]:app/]:php /opt/.phpstorm_helpers/phpunit.php --configuration /opt/project/phpunit-custom.xml
Could not read "/opt/project/phpunit-custom.xml".

Process finished with exit code 1

而配置文件的路径必须作为UI中的绝对路径提供。
enter image description here

输入项目相对路径不起作用。
enter image description here
因此,似乎没有办法告诉IntelliJ研究实际安装项目的路径。

最佳答案

我有一个类似的问题,我在Intellij设置中找不到任何选项,因此我需要手动更改.idea目录中的路径。尝试在/opt/project目录中搜索.idea,然后将其替换为/var/www

就我而言,此问题是由Intellij Ultimate 2019.3中的Python插件引起的

关于php - 使用docker-compose中的docker远程解释器在Intellij中运行PHPUnit期望 “/opt/project”中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60337001/

相关文章:

php - 如何将 session 用户名插入mysql数据库

docker - 如何使用环境文件将环境变量传递到独立的vscode远程容器中?

docker - 在 docker run 命令中传递多个 env 文件

java - 无法执行 com.github.eirslett

scalafx + intellij : NoClassDefFoundError: javafx/scene/shape/CullFace

mysql - Idea PyCharm 数据库工具为 MySql 返回相同的结果

php - SASS 编译器自定义规则/异常(exception)

php - 通过 PHP 的 HTML 表单数据

php - 如何从 PHP 中的字符串中删除所有非字母数字和非空格字符?

docker - cadvisor和influxDB集成问题