Тогда тебе пора!

я есть следующий Dockerfile:

 FROM php:7.0-fpm-alpine

RUN  apk add --update --virtual build_deps gcc g++ autoconf make &&\
  docker-php-source extract &&\
  pecl install xdebug &&\
  echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \
  && echo "xdebug.remote_enable=1" >> /usr/local/etc/php/conf.d/xdebug.ini \
  && echo "xdebug.remote_autostart=0" >> /usr/local/etc/php/conf.d/xdebug.ini &&\
  echo "xdebug.remote_connect_back=1" >> /usr/local/etc/php/conf.d/xdebug.ini &&\
  echo "xdebug.remote_handler = dbgp" >> /usr/local/etc/php/conf.d/xdebug.ini &&\
  echo "xdebug.remote_mode = req" >> /usr/local/etc/php/conf.d/xdebug.ini &&\
  docker-php-ext-enable xdebug &&\
  docker-php-source delete && \
  apk del build_deps && \
  rm -rf /var/cache/apk/* && \
  rm -rf /tmp/*

ENTRYPOINT ["php-fpm"]

И я запускаю его со следующимdocker-compose.yml:

version: '2'
services:
  nginx_dev:
    image: nginx:alpine
    ports:
      - "5092:5092"
    links:
      - "my_symfony_www_dev"
    volumes:
      - './conf/nginx/nginx_dev.conf:/etc/nginx/nginx.conf:ro'
      - './logs/dev:/var/logs'
    volumes_from:
      - 'my_symfony_www_dev'

    my_symfony_www_dev:
      build:
        context: .
        dockerfile: Dockerfile_dev
      image: "myimage/my_symfony_app:dev_php"  
      volumes:
        - "$SOURCE_PATH:/var/www/html:Z"
      environment:
        - PHP_IDE_CONFIG= "serverName=my_symfony_www_dev"
        - XDEBUG_CONFIG="remote_host=10.254.254.254,remote_port=9080"
        - PHP_XDEBUG_ENABLED=1

Также как виднотам Я бегу:

sudo ip addr add 10.254.254.254/24 brd + dev enp4s0 label enp4s0:1

И настроил PhpStorm IDE так:

Затем в Firefox я нажимаюкнопку и в PhpStorm я нажимаюКнопка Я установил точку останова надapp_dev.php и ничего не происходит

Моя система прослушивает через порт9080 черезnetstat -ntlp команда, в которой PhpStorm слушает (PhpStorm является сервером в соответствии сэтот ответ).

tcp        0      0 0.0.0.0:9080            0.0.0.0:*               LISTEN      4773/java       

У вас есть идея, почему это происходит и как это исправить?

Изменить 1:

phpinfo() показывает:

Я также установил de cocker-compose.yml как:

version: '2'
services:
  nginx_dev:
    image: nginx:alpine
    ports:
      - "5092:5092"
    links:
      - "my_symfony_www_dev"
    volumes:
      - './conf/nginx/nginx_dev.conf:/etc/nginx/nginx.conf:ro'
      - './logs/dev:/var/logs'
    volumes_from:
      - 'my_symfony_www_dev'

    my_symfony_www_dev:
      build:
        context: .
        dockerfile: Dockerfile_dev
      image: "myimage/my_symfony_app:dev_php"  
      volumes:
        - "$SOURCE_PATH:/var/www/html:Z"
      environment:
        - XDEBUG_CONFIG="remote_host=10.254.254.254,remote_port=9080"
        - PHP_XDEBUG_ENABLED=1

И мой докер-файл:

FROM php:7.0-fpm-alpine

RUN  apk add --update --virtual build_deps gcc g++ autoconf make &&\
  docker-php-source extract &&\
  pecl install xdebug &&\
  echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \
  && echo "xdebug.remote_enable=1" >> /usr/local/etc/php/conf.d/xdebug.ini \
  && echo "xdebug.remote_autostart=0" >> /usr/local/etc/php/conf.d/xdebug.ini &&\
  echo "xdebug.remote_connect_back=0" >> /usr/local/etc/php/conf.d/xdebug.ini &&\
  echo "xdebug.remote_handler = dbgp" >> /usr/local/etc/php/conf.d/xdebug.ini &&\
  echo "xdebug.remote_mode = req" >> /usr/local/etc/php/conf.d/xdebug.ini &&\
  docker-php-ext-enable xdebug &&\
  docker-php-source delete && \
  apk del build_deps && \
  rm -rf /var/cache/apk/* && \
  rm -rf /tmp/*

ENTRYPOINT ["php-fpm"]

Все тот же результат.

 LazyOne14 нояб. 2017 г., 13:20
4) Вы указалиserverName=my_symfony_www_dev, В таком случае поле Host вPHP | Servers также следует использовать его - вот как PhpStorm определяет, какую запись сервера использовать.
 Thomas14 нояб. 2017 г., 13:49
Я надеюсьэтот ответ может помочь тебе
 LazyOne14 нояб. 2017 г., 16:45
1) Не молча обновлять сообщение - никто не получает уведомления об этом. 2) Где находится журнал xdebug? 3) Ваш скриншот информации о xdebug показывает, что вашXDEBUG_CONFIG из файла docker_compose не применяется, по крайней мере, так, как вы ожидали (порт и remote_host по-прежнему используют значения по умолчанию).
 veelen15 нояб. 2017 г., 14:27
Вместо использования точки останова внутри phpstorm, вы также можете использовать эту функцию в своем кодеxdebug_break();, Если это вызывает функцию отладки в phpstorm, возможно, что-то не так с вашим отображением пути
 LazyOne14 нояб. 2017 г., 13:17
1) собратьphpinfo() выходные данные записываются через браузер (когда вы пытаетесь отладить веб-страницу) - верхняя таблица заголовков + специальный раздел xdebug. Это для подтверждения текущих / активных настроек; 2) Включить и собрать журналы xdebug для такого неудачного сеанса отладки; 3) у вас естьxdebug.remote_connect_back=1 в вашем Dockerfile - с этой опцией xdebug игнорирует значениеxdebug.remote_host, Пока что это должна быть неправильная проблема с IP - xdebug должен пытаться соединиться, но не с тем IP (может быть из-за # 3, например)

Ответы на вопрос(0)

Ваш ответ на вопрос