Тесты запуска на докере от PhpStorm не запускают apache2 - PullRequest
0 голосов
/ 14 декабря 2018

Мне удалось настроить 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веб-сервер имеет полный контейнер?

Спасибо.

1 Ответ

0 голосов
/ 20 декабря 2018

PhpStorm игнорирует точку входа, когда запускает контейнеры через Docker. Compose: https://youtrack.jetbrains.com/issue/WI-42228

Вероятно, добавление command: service apache2 start к вашему docker-compose.yml поможет в этом.

...