Docker набор инструментов и xdebug - PullRequest
0 голосов
/ 17 января 2020

Я использую набор инструментов docker на своем компьютере в Windows 10 Family. Я запустил свою IDE с xdebug на моей хост-машине. Docker двигатель находится на машине ВМ, на которой размещены мои контейнеры

ip хост-машины: 192.168.1.50 ip docker машина: 192.168.99.100

образец моего docker -compose.yml:

    php:
        build: '.'
        volumes: 
        - ./code:/var/www/html/xxx
        - ./docker/apache/vhosts:/etc/apache2/sites-enabled
        - $PWD/docker/php/conf.d:/usr/local/etc/php/conf.d
        ports:
        - 8097:80

Я могу зайти с помощью моего веб-браузера, веб-сайта в мой контейнер с адресом: 192.168.99.100:8097

Я бы хотел отладить с помощью xdebug.

config of xdebug:

zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 0
xdebug.remote_handler=dbgp
xdebug.remote_host = host.docker.internal
xdebug.remote_idekey ="PHPSTORM"
xdebug.remote_log = /var/log/xdebug_remote.log

Проблема: xdebug связывается с моей виртуальной машиной через порт 9000. Я должен настроить соединение между моей виртуальной машиной и хост-машиной.

Какие конфигурации я должен использовать? Должен ли я использовать переадресацию портов?

Заранее благодарим за вашу помощь / предложение.

1 Ответ

0 голосов
/ 17 января 2020

Вы пишете:

ip хост-машины: 192.168.1.50 ip docker машина: 192.168.99.100

Это означает, что они не находятся на та же сеть, что звучит странно. Скорее всего, ваш хост-компьютер также имеет адрес 192.168.99.x (проверьте с помощью sudo ifconfig).

Xdebug находится внутри вашего docker контейнера с PHP и должен установить соединение * От 1010 * до вашей IDE, которая должна жить на IP-адресе, который также указан host.docker.internal. Ваши настройки INI показывают, что вы создаете файл журнала Xdebug (/var/log/xdebug_remote.log), поэтому проверьте, какое соединение Xdebug пытается установить, чтобы поговорить с вашей IDE (и включите это в свой вопрос).

...