Удаленная отладка Xdebug внутри Docker на удаленном сервере

Мне нужно отладить сценарии PHP, расположенные внутри контейнера Docker на удаленном сервере.

Обычно я отлаживаю свой код с помощью кода Visual Studio в Windows. Я без проблем отлаживал свои dev-коды (которые находятся в Vagrant).

Но когда дело доходит до отладки файлов в Docker на удаленном сервере, я не мог заставить его работать.

Вот моя настройка xdebug на php.ini (в докере, расположенном на удаленном сервере)

xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_host=172.18.0.1
xdebug.remote_port=9000
xdebug.remote_log=/tmp/debug.log

remote_host IP-адрес в настройках выше — это IP-адрес удаленного хоста, видимый изнутри Docker.

Я пробовал ssh-туннелирование на мой удаленный сервер (из Windows, используя telnet).

Но когда я пытаюсь запустить сайт в своем браузере, мой код Visual Studio не может обнаружить сеанс отладки.

В основном то, что я сделал, это:

  1. Начните сеанс отладки на моем локальном компьютере (Windows)
  2. Создайте ssh-туннель для удаленного сервера (перенаправив порт 9000 на сервер на локальный хост: 9000), используя ssh -R 9000:localhost:9000 [email protected]
  3. Сопоставленный порт 9000 на Docker с портом 9000 на удаленном сервере
  4. Xdebug в docker настроен на прослушивание своего хоста (то есть IP-адрес хоста, видимый изнутри докера, который я получил при запуске этой команды из внутри докера: /sbin/ip route|awk '/default/ { print $3 }'

Когда я запускаю сайт, /tmp/debug.log содержит это:

I: Connecting to configured address/port: 172.18.0.1:9000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///magento/test.php" language="PHP" xdebug:language_version="5.6.33-1+ubuntu16.04.1+deb.sury.org+1" protocol_version="1.0" appid="12776" idekey="www-data"><engine version="2.5.5"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2017 by Derick Rethans]]></copyright></init>

-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>

Как я могу «передать» соединение, установленное Xdebug, с Docker, на мой удаленный сервер, в IDE на моем локальном компьютере?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]