Wie kann ich php debuggen, das in einen Container geladen wurde, der auf docker beta für Mac läuft?

8

Ich habe den halben Tag verbrachte verschiedene Dinge versuchen, diese Lösung, die ich zufällig stieß auf gist.github.com

Ich habe eine docker-compose-Datei, die einen Ordner mit meinen Client- und Serverprojekten einbindet:

%Vor%

mein Docker php.ini enthält die folgenden xdebug Optionen

%Vor%

Ich habe die xdebug Chrome-Erweiterung installiert

In meiner Mac-Host-Datei habe ich folgendes 127.0.0.1 localhost dtest.xxx.com , so kann ich meinen Web-App zugreifen (und andere Docker Web-Anwendungen) durch dtest.xxx.com , die alle funktionieren die App ausführen

In Phpstorm (Version 2016.1.2) In den Einstellungen -> Languages ​​& amp; Frameworks -> PHP -> Server, die ich habe:

host = dtest.xxx.com, port = 80, Debugger = Xdebug
Pfadzuordnungen verwenden ist aktiviert und ich habe
Datei / Verzeichnis auf /Users/<myname>/projectx/server
gesetzt Der absolute Pfad auf dem Server ist auf /projectx/server

festgelegt

Ich habe versucht, das xdebug.remote_host auf meinen macs Einstellung von ifconfig erhalten IP als auch die ip in /Users/<myname>/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/slirp/host

versuchen

Aber ich kann keinen Breakpoint treffen, ich habe sogar xdebug_break() double check hinzugefügt. Ich betreibe auch die neueste Docker beta Version 1.12.0-rc3-beta18 (build: 9996)

Ich würde jede Hilfe sehr schätzen, es ist ein echter Blocker für mich.

Wenn weitere Informationen erforderlich sind, gebe ich Ihnen gerne Auskunft.

    
jonnie 07.07.2016, 18:37
quelle

1 Antwort

9

UPDATE 2:

Wie @Rashidul wies darauf hin, seit 17.06 Docker für Mac können Sie ersetzen xdebug.remote_host="192.168.65.1" mit xdebug.remote_host="docker.for.mac.localhost"

UPDATE: Der richtige Weg

Ich habe schließlich herausgefunden, dass meine xdebug-Einstellungen im Andockfenster

sein sollten %Vor%

Dabei ist 192.168.65.1 der Eintrag in ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/slirp/host

Im letzten Update gibt es das obige nicht mehr, um die Docker Host IP zu bekommen, die ich kenne, benutze die unten meine .profile

%Vor%

Stellen Sie auch sicher, dass Sie den idkey korrekt in der Chrome-Erweiterung setzen, in meinem Fall PHPSTORM
Damit benötige ich nicht mehr den SSH-Tunnel

Ursprüngliche Lösung:

Die Abhilfe, die ich verwendet wurde, war einen SSH-Tunnel zum Docker Container läuft PHP zu öffnen, indem Sie einen Befehl wie in meinem Fall habe ich den Docker Container SSH-Port 12 zugeordnet damit das -p 12

%Vor%     
jonnie 08.07.2016, 13:08
quelle

Tags und Links