2016-07-11 38 views
2

Ich richte eine Docker-Entwicklungsumgebung für mein Team ein. In dieser Umgebung möchten wir Xdebug mit Docker integrieren, um das Debuggen zu ermöglichen. Es scheint der einfachste Weg, dies zu tun, ist Sublime Text mit der Docker-Instanz zu verbinden und dann Xdebug ontop auf Sublime Text zu installieren. Ich habe die folgende Anleitung zum Integrieren von Sublime Text mit Docker (http://domeide.github.io/) und dieses Handbuch zum Integrieren von Xdebug mit Sublime Text (https://www.sitepoint.com/debugging-xdebug-sublime-text-3/) gefunden. Ich frage mich, ob jemand Erfahrung in der Einrichtung ähnlicher Umgebungen hat? Gibt es einen einfacheren Weg dies zu tun? Scheint dies der richtige Weg, PHP-Code in Docker zu debuggen?Docker mit Xdebug und Sublime Text in PHP-Umgebung integrieren

+0

ich entdeckt habe, dass der beste Weg, um diese Entwicklungsumgebung einzurichten, ist ein zu verwenden, Docker freigegebenes Volume.Jeder Texteditor kann verwendet werden, wenn ein gemeinsam genutztes Volume zwischen dem Container und dem Host eingerichtet wird. –

Antwort

1

Diese Lösung funktioniert möglicherweise auch für Sublime Text - Für Visual Studio Code, ich habe gerade erst funktioniert das. Ich fand diese remote_host und andere Xdebug-Einstellungen sowohl für Windows 10 Pro als auch für OS X mit den neuesten Versionen der Docker Community Edition.

In der Xdebug Erweiterung Konfiguration, ich diese zusammen mit der Xdebug Erweiterung Installation in der Dockerfile des Image-Paket von Docker-Hub, der PHP enthält. Es gibt einen Link zu einem Beitrag am Ende dieser Antwort, wie dies in der Docker-Datei gemacht wurde und wie das Bild erstellt und dann zur docker-compose-Datei hinzugefügt wurde.

  1. Die xdebug.remote_connect_back Einstellung muss ausgeschaltet sein: xdebug.remote_connect_back=0
  2. Autostart xdebug.remote_autostart=1 es funktioniert einfach.
  3. xdebug.remote_host = benötigt 127.0.0.1 geändert werden je nach Windows- oder OS X wie folgt:

Windows-10 Professional läuft Docker Version 17.03.0-ce-win1 eine Eingabeaufforderung öffnen und geben Sie ipconfig . Die Adresse ist unter DockerNAT aufgeführt. Zum Beispiel:

ipconfig 

Ethernet adapter vEthernet (DockerNAT): 

    IPv4 Address. . . . . . . . . . . : 10.0.75.1 

OS X El Capitan Docker Version 17.03.0-ce-mac2 ausgeführt wird, einen Aliasnamen von IP 10.254.254.254 zu Ihrer bestehenden Subnetz-Maske erstellen.

sudo ifconfig en0 alias 10.254.254.254 255.255.255.0 

dann die IP für Ihr Host für die xdebug.remote_host Einstellung verwenden, wie auf den obigen Beispielen anhand folgt:

  1. Windows-10.0.75.1
  2. OS X: 10.254.254.254

Hinweis, wenn Wenn Sie in OS X auf einen Konflikt stoßen, können Sie den Alias ​​wie folgt entfernen.

sudo ifconfig en0 -alias 10.254.254.254 

Ich benutze Visual Studio-Code mit dem vscode-PHP-Debug PHP Debug-Adapter für Xdebug zu hören und meinen Code für Schritt durch. Beachten Sie, dass folgende Dateien in die Projektdatei launch.json aufgenommen werden müssen, damit VS Code die Remote-Server-Dateien dem lokalen Rechner zuordnen kann. Das ist von meinem Projekt und seinen typischen Volume-Speicherorten, Ihr serverSourceRoot scheint identisch zu sein.

"serverSourceRoot": "/var/www/html", 
"localSourceRoot": "${workspaceRoot}" 

Die gesamte Einrichtung für Docker-compose, nginx-Proxy darunter, wie das Bild mit Xdebug bauen und mehr bei Docker WordPress Dev Environment - Remote Debugging with Xdebug and VS Code

+0

Ich fand das überraschend schwierig - weil Sie die lokale IP in den Arbeitscontainer bekommen müssen, den Sie debuggen. Ich finde es sehr unangenehm, dass ich meine Einstellungen abhängig von der BOX, an der ich gerade arbeite, manuell bearbeiten muss. Haben Sie Ihre Lösung an dieser Stelle verbessert? – ktamlyn

+1

@ktamlyn, Es ist etwas einfacher zu verwalten, wenn die remote_host-IP als env-Variable übergeben wird, docker-compose kann auch die Verwaltung der Dinge ein wenig erleichtern, wo Sie je nach Umgebung die Ein-/Auskommentierung vornehmen können. –