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
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
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.
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"
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
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
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