Мне удалось настроить PhpStrom с докером на основе php7.1-apache
образа.docker-compose.yml
ниже:
version: '3'
services:
www:
image: php:7.1-apache
volumes:
- .:/var/www/html/
ports:
- "80:80"
И в моем приложении у меня есть юнит-тесты и API-тесты.Нет проблем с запуском юнит-тестов из phpstorm.Удаленный интерпретатор используется правильно.
Проблема в API-тестах, которые отправляют http-запросы на веб-сервер. Я выяснил, что демон apache2 вообще не запускается.
docker ps --no-trunc
показывает:
php /var/www/html/vendor/phpunit/phpunit/phpunit --no-configuration --filter '/(::should_do_something)( .*)?$/' ExampleTest /var/www/html/tests/ExampleTest.php --teamcity
И в контейнере я вижу:
$:~/workspace/phpstorm-docker$ docker-compose exec www bash
root@aa13971914b2:/var/www/html/tests# service apache2 status
[FAIL] apache2 is not running ... failed!
Это потому, что PhpStrom не запускает apache2-foreground
процесс.
Если я поставлю sleep(15)
перед выполнением теста API и внутри запуска контейнера:
service apache2 start
Тест пройден.
Знаете ли вы, как заставить PhpStorm запускаться также apache2веб-сервер имеет полный контейнер?
Спасибо.