[DOCKER] Ich war süchtig nach Laradock + VSCode + xdebug

Umgebung

laradock Docker for Windows 2.0.0.3 (31259) VSCode 1.33.1 xdebug 2.7.2 php 7.2

Einstellungen auf der Laradock-Seite

Stellen Sie ein, dass xdebug im Arbeitsbereich und in PHP (.env) installiert werden soll.

...
WORKSPACE_INSTALL_XDEBUG=true
...
PHP_FPM_INSTALL_XDEBUG=true
...

Ändern Sie die beiden xdebug.ini wie folgt (/php-fmp/xdebug.ini) (/workspace/xdebug.ini) xdebug.remote_host Bei Windows funktionierte es mit dem Docker-Host, bei Mac ist die Netzwerkkonfiguration von Docker jedoch unterschiedlich, sodass es anscheinend nicht mit unterschiedlichen Einstellungen funktioniert xdebug.remote_port Der Standardwert 9000 kann verwendet werden, solange er nicht von anderen Apps verwendet wird.

xdebug.remote_host=dockerhost
xdebug.remote_connect_back=0
xdebug.remote_port=9002
...
xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.cli_color=1

Wenn Sie damit Docker-komponieren, ist die Laradock-Seite in Ordnung

VS Code-seitige Einstellungen

Installieren Sie die Erweiterung PHP Debug

Erstellen Sie die folgende Datei in dem in Vscode geöffneten Laravel-Projekt (/.vscode/launch.json). port ist der in xdebug.ini angegebene Wert pathMappings ist {Remote-Dokumentstamm}: {Host-Dokumentstamm}

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9002,
            "stopOnEntry": true,
            "pathMappings": {
                "/var/www": "${workspaceRoot}"
            }
        }
    ]
}

Firewall-Einstellungen

Sie müssen die Firewall so konfigurieren, dass VS Code mit Xdebug in Docker kommunizieren kann. VS Code wurde vorerst so eingestellt, dass die Kommunikation über ein privates Netzwerk möglich ist. Ich versuche xdebug im Docker-Arbeitsbereichscontainer, erhalte jedoch die folgende Fehlermeldung und kann keine Verbindung herstellen.

        I: Connecting to configured address/port: dockerhost:9002.

        E: Time-out connecting to client. :-(

Nach der Untersuchung verschiedener Dinge wurde das Netzwerk, in dem Docker ausgeführt wird, nicht identifiziert (öffentlich), sodass die Kommunikation von der Firewall blockiert wurde. VS Code kann jetzt eine Verbindung herstellen, indem er die Kommunikation über öffentliche Netzwerke ermöglicht oder nicht identifizierte Netzwerke als privat betrachtet.

Referenz

https://qiita.com/hiro-tarosuke/items/adcc382ca98dfb89401b https://qiita.com/ditflame/items/bf4b5f412bf607c5c6d2#%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%8C%E3%83%9E%E3%82%A6%E3%83%B3%E3%83%88%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84

Recommended Posts

Ich war süchtig nach Laradock + VSCode + xdebug
Ich war süchtig nach der API-Version min23 von registerTorchCallback
Ich war süchtig nach der Aufzeichnung des zugehörigen Modells
Die Geschichte, nach der ich beim Einrichten von STS süchtig war
Ich war süchtig nach der Rollmethode
Ich war süchtig nach dem Spring-Batch-Test
Beachten Sie, dass ich von den Einstellungen des Android-Projekts von IntelliJ IDEA abhängig war
Aufgenommen, weil ich süchtig nach der Standardeingabe der Scannerklasse war
[Circle CI] Ich war süchtig nach dem automatischen Test von Circle CI (Rails + MySQL) [Memo]
Eine Geschichte, der ich mit der automatischen Starteinstellung von Tomcat 8 unter CentOS 8 zweimal verfallen war
Ich war süchtig danach, sbt zu starten
Wovon ich bei der Einführung der JNI-Bibliothek süchtig war
Ich war süchtig danach, default_url_options mit der Einführung von Rails zu setzen
Ich war süchtig danach, die Update-Anweisung in MyBatis zu wiederholen
Was ich mit der Redmine REST API süchtig gemacht habe
Ich habe versucht, eine Umgebung mit WSL2 + Docker + VSCode zu erstellen
Der Teil, dem ich in "Einführung in Ajax in Java-Webanwendungen" von NetBeans verfallen war
Über die Sache, dass ich süchtig danach war, wie man Hashmap benutzt
Ich war süchtig danach, in @ SpringApplicationConfiguration-> @SpringBootTest umzuschreiben
Ein Memo, das nüchtern von der Anfrage nach mehrteiligen / Formulardaten abhängig war
Memorandum: Wovon ich süchtig war, als ich auf die Accounting Freee API traf
[Rails] Ich war süchtig nach den Nginx-Einstellungen, als ich Action Cable verwendete.
Eine Geschichte, der ich beim Testen der API mit MockMVC verfallen war
Ich war süchtig nach einem einfachen Test von Jedis (Java-> Redis-Bibliothek)
Probleme, denen ich beim Erstellen der Digdag-Umgebung mit Docker verfallen war
Ich war süchtig nach Scrollview, weil ich nicht auf die UIView mit variabler Größe tippen konnte
Ich war süchtig nach Unit-Tests mit dem Pufferoperator in RxJava
Ich war süchtig nach RXTX mit Sierra
Ich möchte den Inhalt der Absicht var_dump
Ich war süchtig danach, vom Docker-Container aus keine Verbindung zu AWS-S3 herstellen zu können
Ich war ein wenig süchtig nach dem S3-Prüfsummenvergleich, machen Sie sich also eine Notiz.
Ich wurde von der Dunkelheit Romajis verschluckt, als ich versuchte, meinen Namen in Romaji umzuwandeln
Ich habe versucht, die Kapazität von Spring Boot zu reduzieren
Ich möchte den Namen des Posters des Kommentars anzeigen
Ich war süchtig nach getXxxx von ResultSet, weil es ein primitiver Typ ist (Java)
[Android] So erhalten Sie die Einstellungssprache des Terminals
Ich möchte die Bildlaufposition von UITableView zurückgeben!
Was ich beim Update auf Spring Boot 1.5.12 behoben habe ・ Wovon ich süchtig war
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
Wovon ich süchtig war, als ich rspec auf Schienen benutzte
So ändern Sie den Einstellwert von Springboot Hikari CP
Ich habe die grundlegende Grammatik von Ruby kurz zusammengefasst
Ich war seltsamerweise süchtig danach, Javas Stream-API mit Scala zu verwenden
[Ruby] Ich möchte die Reihenfolge der Hash-Tabelle umkehren
Eine Geschichte, die mich während des Komponententests von der impliziten Typkonvertierung von ActiveRecord abhängig machte
802.1X-Authentifizierung für das Netzwerk der Bonding-Einstellung in CentOS7
Technische Ursachen und Gegenmaßnahmen für die Punkte, denen ich mit der ersten Android-App und Kotlin verfallen war
Ich möchte die Methode des Controllers kennen, bei der die Ausnahme im ExceptionHandler von Spring Boot ausgelöst wurde
[Circle CI] Eine Geschichte, der ich bei Start Building verfallen war
Ich habe versucht zusammenzufassen, was bei der Site-Java-Ausgabe gefragt wurde.
Ich möchte den Ablauf der Spring-Verarbeitungsanforderungsparameter verstehen
Ich habe versucht, mit Docker eine Plant UML Server-Umgebung zu erstellen