Я настраиваю среду разработки Docker для своей команды. В этой среде мы хотим интегрировать Xdebug с Docker для обеспечения возможности отладки. Кажется, самый простой способ сделать это — подключить Sublime Text к экземпляру Docker, а затем установить Xdebug ontop на Sublime Text. Я нашел следующее руководство по интеграции Sublime Text с Docker (http://domeide.github.io/) и это руководство по интеграции Xdebug с Sublime Text (https://www.sitepoint.com/debugging-xdebug-sublime-text-3/). Что мне интересно, если у кого-то есть опыт настройки подобных сред? Есть ли более простой способ сделать это? Кажется ли это правильным способом отладки PHP-кода внутри Docker?
Это решение может также работать для Sublime Text — для кода Visual Studio, я только недавно получил это работает. Я обнаружил, что эти remote_host и другие настройки Xdebug работают для меня как в Windows 10 Pro, так и в OS X с использованием последних версий Docker Community Edition.
В конфигурации расширения Xdebug я установил их вместе с установкой расширения Xdebug в Dockerfile пакета образа из концентратора докеров, который содержит php. В нижней части этого ответа есть ссылка на сообщение о том, как это было сделано в Dockerfile и как изображение было построено и затем добавлено в файл docker-compose.
xdebug.remote_connect_back
настройка должна быть выключена: xdebug.remote_connect_back=0
xdebug.remote_autostart=1
это просто работает.Windows 10 Professional под управлением Docker версии 17.03.0-ce-win1, откройте командную строку и введите ipconfig. Адрес указан в разделе DockerNAT. Например:
ipconfig
Ethernet adapter vEthernet (DockerNAT):
IPv4 Address. . . . . . . . . . . : 10.0.75.1
OS X El Capitan под управлением Docker версии 17.03.0-ce-mac2, создайте псевдоним IP 10.254.254.254 для существующей маски подсети.
sudo ifconfig en0 alias 10.254.254.254 255.255.255.0
Затем используйте IP для xdebug.remote_host
установка для вашего хоста следующим образом на основе приведенных выше примеров:
10.0.75.1
10.254.254.254
Обратите внимание, если вы столкнетесь с конфликтом в OS X, вы можете удалить псевдоним, например, так.
sudo ifconfig en0 -alias 10.254.254.254
Я использую Visual Studio Code с PHP-адаптером отладки vscode-php-debug для прослушивания Xdebug и прохождения кода. Обратите внимание, что в проект необходимо включить следующее launch.json
файл для VS Code для сопоставления файлов удаленного сервера с локальной машиной. Это из моего проекта и его типичных расположений томов, ваш serverSourceRoot выглядит так же.
"serverSourceRoot": "/var/www/html",
"localSourceRoot": "${workspaceRoot}"
Полная настройка для docker-compose, nginx-proxy, включая сборку образа с помощью Xdebug и многое другое на Docker WordPress Dev Environment — Удаленная отладка с использованием кода Xdebug и VS
Других решений пока нет …