Ich kann jetzt eine Dart App mit
ausführen %Vor%und auch auf AppEngine bereitstellen und ausführen
%Vor%Ich habe jedoch keine Möglichkeit gefunden, einen Debugger mit der Dart App zu verbinden, die auf dem Entwicklungsserver läuft.
Ich habe Ссылка gefunden, konnte aber immer noch keinen Weg finden, es zum Laufen zu bringen.
Siehe auch Ссылка
Die App kann ohne Docker ausgeführt werden und dann wie jede Dart-Befehlszeilenanwendung debuggt werden: Quelle. Ссылка
Der API-Server ist Teil des App Engine SDK und wir verwenden es für Lauftests im Appengine-Paket. Wenn du es ansiehst Ссылка Sie werden sehen, dass es die Umgebungsvariable erwartet APPENGINE_API_SERVER.
Der API-Server befindet sich in /platform/google_appengine/api_server.py
und nimmt eine Reihe von Argumenten. Ich habe es gerade so getestet:
$ $ CLOUD_SDK / Plattform / google_appengine / api_server.py \ -A dev ~ test-application \ --api_port 4444 \ --hohe_replikation \
--datastore_path / tmp / DatenspeicherUm eine App-Engine-Anwendung außerhalb des normalen Entwicklungsservers auszuführen erfordert, dass eine Anzahl von Umgebungsvariablen festgelegt wird. Das hat funktioniert für meine Bewerbung:
$ GAE_LONG_APP_ID = Testanwendung \ GAE_MODULE_NAME = Standard \
GAE_MODULE_VERSION = Version \ GAE_PARTITION = dev \ API_PORT = 4444 \
API_HOST = 127.0.0.1 \ dart bin / server.dartIm Darteditor können Sie keine Umgebungsvariablen für jeden festlegen Startkonfiguration, also müssen sie vor dem Start global gesetzt werden der Dart Editor. In WebStorm ist es möglich, die Konfiguration auszuführen spezifische Umgebungsvariablen.
Diese einfache Einrichtung unterstützt natürlich nicht alles was normal ist Entwicklungsserver-Unterstützung. Einige der Probleme sind:
- Nur eine Anwendung zu der Zeit, da sie immer auf Port hört 8080 (kann leicht konfiguriert werden) * Die Benutzer-API (spottet dies sollte nicht so schwierig sein) * Die Module API * Keine Gesundheits-Checks (sollte kein Problem sein) * Alle HTTP Header sind direkt von der client (keine x-appengine-headers) * Die Admin-Weboberfläche ist nicht verfügbar * Wahrscheinlich auch andere Sachen
Das ist alles experimentell, aber es ist eine Lösung für ein einfacheres Entwickler-Setup, dessen Ursache nicht mit der Bereitstellung übereinstimmt Umgebung so eng wie der Entwicklungsserver.
Das Ausführen des API-Servers mit Docker ist auch als Image möglich google / cloud-sdk mit dem Cloud SDK ist auf hub.docker.com.
Verwenden Sie die folgende Dockerfile
VON google / cloud-sdk EXPOSE 4444 ENTRYPOINT ["/google-cloud-sdk/platform/google_appengine/api_server.py", \
"-A", "dev ~ test-application", "-api_port", "4444", \
"--high_replication", "--datastore_path", "/ tmp / datastore"]Erstellen und ausführen
$ docker build -t api_server. $ docker run -d -p 4444: 4444 api_server
Ändern Sie API_HOST oben auf 192.166.59.103 (von wo auch immer Ihr Docker Container sind) und laufen.
Grüße, Søren Gjesse
Debugging von DartEditors Debugger begann mit dem blutenden Dart build 1.8.0.edge_042017
zu arbeiten.
Ich nehme an, dass das nächste dev build (wahrscheinlich 1.9.0-dev1.0
) auch die zugehörigen Fixes enthält?
Detaillierte Schritte, wie dies funktioniert, finden Sie hier: Ссылка
Erstellen Sie ein benutzerdefiniertes Docker-Image mit dem neuesten Dart-dev-Build 1.8.0-dev.4.6
.
Das Dart-Team bereitet gerade einen einfachen Weg vor, dies selbst zu tun (siehe Ссылка )
Installieren Sie die neueste bluting_edge auf dem Host-System (mit diesem Skript Ссылка oder manuellem Download von Ссылка )
Fügen Sie dies der app.yaml
-Datei
Siehe Wie Sie die Statusprüfung für die 'gcloud preview app run' deaktivieren , um weitere Einzelheiten zum Anpassen der Integritätsprüfung zu erhalten.
Starten Sie den Server-Code Ihrer App mit glcoud --verbosity debug app run app.yaml
oder glcoud --verbosity debug app run app.yaml index.yaml
Warten Sie, bis der Docker-Container bereit ist (überprüfen Sie mit docker ps
, wenn die Spalte Command
einen Wert zeigt, der mit /dart_runtime/dart_
Öffnen Sie den DartEditor
Öffnen Sie das Menü Run > Remote Connection...
Verbindung zu: Command-line VM
Host: localhost
, wenn Sie nicht t use
boot2docker or the IP address returned by the command
boot2docker ip '
Port: 5005
Select Folder...
Wählen Sie das Verzeichnis, das den Quellcode Ihres Projekts enthält.
Klicken Sie auf OK
Setzen Sie Haltepunkte und fahren Sie wie gewohnt fort.
Ein erster Schritt ist die Verwendung des Observatory , das eine browserbasierte Debugger-Benutzeroberfläche enthält.
Um dies zu ermöglichen, fügen Sie der Datei app.yaml
Dies könnte auch nützlich sein, um das server.dart
warten zu lassen, bis wir die Möglichkeit hatten, Breakpoints mit Hilfe des Observatoriums zu setzen.
boot2docker
gibt uns die Docker-IP (192.168.59.103) und nach dem Start mit gcloud preview app run app.yaml
können wir uns mit http://192.168.59.103:8181
verbinden, was die Observatory-GUI öffnen sollte.
Tags und Links google-app-engine dart