Интеграция Docker с Xdebug и Sublime Text в среде PHP

Я настраиваю среду разработки 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?

2

Решение

Это решение может также работать для Sublime Text — для кода Visual Studio, я только недавно получил это работает. Я обнаружил, что эти remote_host и другие настройки Xdebug работают для меня как в Windows 10 Pro, так и в OS X с использованием последних версий Docker Community Edition.

В конфигурации расширения Xdebug я установил их вместе с установкой расширения Xdebug в Dockerfile пакета образа из концентратора докеров, который содержит php. В нижней части этого ответа есть ссылка на сообщение о том, как это было сделано в Dockerfile и как изображение было построено и затем добавлено в файл docker-compose.

  1. xdebug.remote_connect_back настройка должна быть выключена: xdebug.remote_connect_back=0
  2. Автоматический старт xdebug.remote_autostart=1 это просто работает.
  3. xdebug.remote_host = 127.0.0.1 необходимо изменить в зависимости от Windows или OS X следующим образом:

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 установка для вашего хоста следующим образом на основе приведенных выше примеров:

  1. Windows 10.0.75.1
  2. OS X: 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

1

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

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

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