fra*_*ity 2 php phpunit intellij-idea docker docker-compose
我在 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
Run Code Online (Sandbox Code Playgroud)
项目解释器通过 docker-compose 设置为使用远程 docker(Docker for Mac),并且 IntelliJ 正确检测解释器和调试器:

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:
Run Code Online (Sandbox Code Playgroud)
所以项目被挂载到容器的/var/www. 使用docker-compose up -d它启动项目后,可以http://localhost:8888按预期访问。但是通过 IntelliJ 运行单元测试不起作用,因为生成的命令需要/opt/project容器文件夹中的配置:
<project_root>
+- src/
+- tests/
+- vendor/
| +- autoload.php
+- .env
+- composer.json
+- composer.lock
+- docker-compose.yml
+- Dockerfile
+- phpunit.xml
+- phpunit-custom.xml
Run Code Online (Sandbox Code Playgroud)
小智 5
我有一个类似的问题,我在 Intellij 设置中找不到任何选项,所以我需要手动更改.idea目录中的路径。尝试搜索/opt/project内部.idea目录并将其替换为/var/www.
就我而言,这个问题是由我的 Intellij Ultimate 2019.3 中的 Python 插件引起的
| 归档时间: |
|
| 查看次数: |
605 次 |
| 最近记录: |