我已经使用Redis,MySQL,php-fpm和Nginx Web服务器设置了docker-compose
环境。这是docker-compose.yml
的相关部分:
webserver:
image: nginx:alpine
container_name: webserver
working_dir: /application
volumes:
- .:/application
- ./phpdocker/webserver/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "8082:80"
php-fpm:
build: phpdocker/php-fpm
container_name: php-fpm
working_dir: /application
volumes:
- .:/application
- ./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/7.3/fpm/conf.d/99-overrides.ini
这是引用的php-fpm
构建的结构:
FROM phpdockerio/php73-fpm:latest
WORKDIR "/application"
# Fix debconf warnings upon build
ARG DEBIAN_FRONTEND=noninteractive
# Install selected extensions and other stuff
RUN apt-get update \
&& apt-get -y --no-install-recommends install php7.3-mysql php-redis php-xdebug \
&& apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
# Install git
RUN apt-get update \
&& apt-get -y install git \
&& apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
您可能会认识到结构或默认值;我用phpdocker生成了它。
我的容器都构建良好,因此下一步是设置PHPStorm以从php-fpm Docker容器中运行测试。我已经正确设置了远程解释器和PHPUnit路径,运行了一个基本测试,并得到以下(bizarre)输出:
docker-compose://[/Users/christian/projects/application/docker-compose.yml]:php-fpm/php /application/src/app/vendor/bin/phpunit --configuration /application/phpunit.xml --filter "/(::testPagesReturnExpectedStatus)( .*)?$/" Tests\Smoke\SmokeTest /application/tests/php/Smoke/SmokeTest.php --teamcity
Starting application__phpstorm_helpers_1 ...
Recreating php-fpm ...
Attaching to php-fpm
php-fpm | PHPUnit 7.4.3 by Sebastian Bergmann and contributors.
php-fpm |
php-fpm | Runtime: PHP 7.3.6-1+ubuntu18.04.1+deb.sury.org+1 with Xdebug 2.7.1
php-fpm | Configuration: /application/phpunit.xml
php-fpm |
php-fpm |
php-fpm |
php-fpm | fivefour-php-fpm |
php-fpm | Empty test suite.
php-fpm |
php-fpm |
php-fpm | Time: 1.59 seconds, Memory: 6.00 MB
php-fpm |
php-fpm |
php-fpm | ERRORS!
php-fpm | Tests: 9, Assertions: 0, Errors: 1.
php-fpm exited with code 2
Aborting on container exit...
Process finished with exit code 2
我马上注意到两件事:通常,当测试中有错误时,PHPUnit将输出这些错误。在这里,我什么也没得到。其次,我收到一条消息,提示“ Empty test suite。”,尽管实际上排了几行,但还是打印了“ Tests:9,Assertions:0,Errors:1`”,这似乎不是一个空测试。适合我。
简而言之,我绝对不知道发生了什么,甚至不知道如何解决它!如果有人有什么见识,我将不胜感激。
答案 0 :(得分:1)
我通过设置Docker映像以允许SSH访问来“解决”此问题,然后使用PHPStorm的SSH远程解释器而不是docker远程解释器。我不愿接受我的解决方案作为真正的答案,因为它更多是一种解决方法,但我将其留在这里供后代/将来的Google员工使用。