Das Docker-Image läuft auf meinem System einwandfrei, aber wenn es auf Edge-Orchestrierung ausgeführt wird, werden mir die Fehler angezeigt:
Läuft perfekt auf meinem System:
Hier ist der Befehl, den ich ausführe:
curl -X POST "192.168.43.11:56001/api/v1/orchestration/services" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"ServiceName\": \ "age_detection\", \"ServiceInfo\": [{ \"ExecutionType\": \"container\", \"ExecCmd\": [ \"docker\", \"run\", \"-it\" ,\"--rm\",\"--device=/dev/video0\",\"-e\",\"DISPLAY=$DISPLAY\",\"-v\",\"$XSOCK: $XSOCK\",\"-v\",\"$XAUTH:$XAUTH\",\"-e\",\"XAUTHORITY=$XAUTH\",\"-e\",\" QT_X11_NO_MITSHM=1 \",\"animeshj123/age_det_ image:02\ "]}], \"StatusCallbackURI\": \" http://192.168.43.11 :8888/api/v1/services/notification\"}"
@Deepak-Enc Ich habe Ihren Fall erfolgreich mit einem Fehler reproduziert und den Container auch erfolgreich mit Edge-Orchestrierung gestartet.
Unten ist der Befehl, den ich getan habe, um erfolgreich zu starten
virtual-pc@virtualpc-VirtualBox:~$ curl -X POST "127.0.0.1:56001/api/v1/orchestration/services" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"ServiceName\": \"age_detection\", \"ServiceInfo\": [{ \"ExecutionType\": \"container\", \"ExecCmd\": [ \"docker\", \"run\", \"-it\",\"--rm\",\"--device=/dev/video0\", \"--net=host\",\"--ipc=host\", \"-e\",\"DISPLAY=$DISPLAY\",\"-v\",\"/tmp/.X11-unix:/tmp/.X11-unix\",\"-e\",\"QT_X11_NO_MITSHM=1\",\"animeshj123/age_det_image:02\"]}], \"StatusCallbackURI\": \"http://127.0.0.1:8888/api/v1/services/notification\"}"
{"Message":"ERROR_NONE","RemoteTargetInfo":{"ExecutionType":"container","Target":"10.0.2.15"},"ServiceName":"age_detection"}
virtual-pc@virtualpc-VirtualBox:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0d73793665d9 animeshj123/age_det_image:02 "python detect_age_c…" 16 minutes ago Up 16 minutes crazy_visvesvaraya
f1a1dacb70fd edge-orchestration:baobab "sh run.sh" 16 minutes ago Up 16 minutes edge-orchestration
virtual-pc@virtualpc-VirtualBox:~$
Stoppen Sie den laufenden Container, und danach können Sie mit der Edge-Orchestrierung beginnen
Bitte geben Sie Feedback, was ist Ihr Ergebnis? Ich hoffe bei dir hat alles geklappt. Bei Fragen stehen wir Ihnen gerne zur Verfügung!
Erhalte den gleichen Fehler.
Sie müssen sicherstellen, dass das Programm im Container animeshj123/age_det_image:02
korrekt startet, da die Zeile container execution status : 1
anzeigt, dass im Programm selbst ein Fehler aufgetreten ist.
Ich schlage vor, es zu tun. Danach sehe ich, dass alles richtig funktioniert:
virtual-pc@virtualpc-VirtualBox:~$ sudo docker run --rm -ti --device=/dev/video0 --net=host --ipc=host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --env="QT_X11_NO_MITSHM=1" animeshj123/age_det_image:02
[sudo] password for virtual-pc:
[INFO] loading face detector model...
[INFO] loading age detector model...
[INFO] starting video stream...
^CTraceback (most recent call last):
File "detect_age_cam.py", line 121, in <module>
results = detect_and_predict_age(frame, faceNet, ageNet,
File "detect_age_cam.py", line 29, in detect_and_predict_age
detections = faceNet.forward()
KeyboardInterrupt
virtual-pc@virtualpc-VirtualBox:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f1a1dacb70fd edge-orchestration:baobab "sh run.sh" 17 hours ago Up 17 hours edge-orchestration
virtual-pc@virtualpc-VirtualBox:~$ curl -X POST "127.0.0.1:56001/api/v1/orchestration/services" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"ServiceName\": \"age_detection\", \"ServiceInfo\": [{ \"ExecutionType\": \"container\", \"ExecCmd\": [ \"docker\", \"run\", \"-it\",\"--rm\",\"--device=/dev/video0\", \"--net=host\",\"--ipc=host\", \"-e\",\"DISPLAY=$DISPLAY\",\"-v\",\"/tmp/.X11-unix:/tmp/.X11-unix\",\"-e\",\"QT_X11_NO_MITSHM=1\",\"animeshj123/age_det_image:02\"]}], \"StatusCallbackURI\": \"http://127.0.0.1:8888/api/v1/services/notification\"}"
{"Message":"ERROR_NONE","RemoteTargetInfo":{"ExecutionType":"container","Target":"10.0.2.15"},"ServiceName":"age_detection"}virtual-pc@virtualpc-VirtualBox:~$
virtual-pc@virtualpc-VirtualBox:~$
Ich sehe auch so einen Fehler.
es kann behoben werden, wenn Docker neu gestartet wird (Service Docker Neustart)
Derselbe Container läuft auf Ihrem Edge und auch auf meinem localhost, der
bedeutet, dass das Programm kein Problem hat. es könnte ein Problem mit meinem geben
Edge-Orchestrierung, wie Sie dieses Problem lösen können.
Am Mo, 15. Juni 2020, 16:25 Uhr tdrozdovsky, schrieb [email protected] :
Sie müssen sicherstellen, dass das Programm im animeshj123/age_det_ image:02
Container startet korrekt, da der Container-Ausführungsstatus: 1 Zeile
zeigt an, dass im Programm selbst ein Fehler aufgetreten ist.
[Bild: изображение]
https://user-images.githubusercontent.com/45031429/84649763-bd171c00-af0f-11ea-9ff6-7ba80aea6662.pngIch schlage vor, es zu tun. Danach sehe ich, dass alles richtig funktioniert:
virtual-pc@virtualpc-VirtualBox :~$ sudo docker run --rm -ti --device=/dev/video0 --net=host --ipc=host -e DISPLAY=$DISPLAY -v /tmp/.X11- unix:/tmp/.X11-unix --env="QT_X11_NO_MITSHM=1" animeshj123/age_det_ image:02
[sudo] Passwort für Virtual-PC:
[INFO] Gesichtserkennungsmodell wird geladen...
[INFO] Altersdetektor-Modell wird geladen...
[INFO] Videostream wird gestartet...
^CTraceback (letzter Aufruf zuletzt):
Datei "detect_age_cam.py", Zeile 121, in
results = detect_and_predict_age(frame, faceNet, ageNet,
Datei "detect_age_cam.py", Zeile 29, in detect_and_predict_age
detections = faceNet.forward()
KeyboardInterrupt
virtual-pc@virtualpc-VirtualBox :~$ docker ps -a
CONTAINER ID BILDBEFEHL ERSTELLTER STATUS PORT NAMEN
f1a1dacb70fd edge- orch estration:baobab "sh run.sh" vor 17 Stunden Nach oben 17 Stunden edge-orchestration
virtual-pc@virtualpc-VirtualBox :~$ curl -X POST "127.0.0.1:56001/api/v1/orchestration/services" -H "accept: application/json" -H "Content-Type: application/json" - d "{ \"ServiceName\": \"age_detection\", \"ServiceInfo\": [{ \"ExecutionType\": \"container\", \"ExecCmd\": [ \"docker\", \" run\", \"-it\",\"--rm\",\"--device=/dev/video0\", \"--net=host\",\"--ipc=host\ ", \"-e\",\"DISPLAY=$DISPLAY\",\"-v\",\"/tmp/.X11-unix:/tmp/.X11-unix\",\"-e\ ",\"QT_X11_NO_MITSHM=1\",\"animeshj123/age_det_ image:02\ "]}], \"StatusCallbackURI\": \" http://127.0.0.1 :8888/api/v1/services/notification\ "}"
{"Message":"ERROR_NONE","RemoteTargetInfo":{"ExecutionType":"container","Target":"10.0.2.15"},"ServiceName":"age_detection"} virtual-pc@virtualpc-VirtualBox :~ $
virtual-pc@virtualpc-VirtualBox :~$
Ich sehe auch so einen Fehler.
[Bild: изображение]
https://user-images.githubusercontent.com/45031429/84649385-1d598e00-af0f-11ea-9b6a-43a7780c7cf5.png
es kann behoben werden, wenn Docker neu gestartet wird (Service Docker Neustart)—
Sie erhalten dies, weil Sie erwähnt wurden.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/lf-edge/edge-home-orchestration-go/issues/91#issuecomment-644056795 ,
oder abmelden
https://github.com/notifications/unsubscribe-auth/ANR2JO4EKLU3UYAYP4OSZB3RWX4ZPANCNFSM4N42UCTA
.
Unten ist ein Beispiel dafür, wie es möglicherweise nicht richtig funktioniert
virtual-pc@virtualpc-VirtualBox:~$ docker run --rm -ti --device=/dev/video0 --net=host --ipc=host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --env="QT_X11_NO_MITSHM=1" animeshj123/age_det_image:02
[sudo] password for virtual-pc:
[INFO] loading face detector model...
[INFO] loading age detector model...
[INFO] starting video stream...
[ WARN:0] global /io/opencv/modules/videoio/src/cap_v4l.cpp (887) open VIDEOIO(V4L2:/dev/video0): can't open camera by index
Traceback (most recent call last):
File "detect_age_cam.py", line 117, in <module>
frame = imutils.resize(frame, width=400)
File "/usr/local/lib/python3.8/site-packages/imutils/convenience.py", line 69, in resize
(h, w) = image.shape[:2]
AttributeError: 'NoneType' object has no attribute 'shape'
jetzt schau dir den fehlercode an
virtual-pc@virtualpc-VirtualBox:~$ echo $?
1
der Fehler ist derselbe wie der Edge-Orchestrator zurückgibt
Ich denke, es ist notwendig, nach Gründen zu suchen, warum das Programm nicht richtig funktioniert (zum Beispiel gibt es keinen Zugriff auf /dev/video0
oder andere).
Bitte klären Sie meine Zweifel. Auf meinem Host-Rechner funktioniert es einwandfrei, dh es gibt kein Problem mit dem Docker-Container oder der Docker-Datei. Möglicherweise liegt ein Problem mit der Edge-Orchestrierung vor, da ich die Container- oder Docker-Datei nicht erkennen kann.
@Deepak-Enc Bitte beschreiben Sie viel detaillierter, was "ein Problem mit der Edge-Orchestrierung" ist. Nach meinem Verständnis wird Ihr Targeting-Container erfolgreich auf Ihrem lokalen Host über einen Docker-Container / eine Docker-Datei ausgeführt, schlägt jedoch fehl, wenn Sie versuchen, ihn auf Edge-Orchestrierung auszuführen. Wir haben Ihnen mehrere Empfehlungen gegeben, aber es ist immer noch unklar, wie Sie dieses Problem lösen können. Liegen wir richtig?
@suresh-lc Was ist deine Meinung? Es scheint nicht nur ein Konfigurationsproblem zu sein.
16.06.2020 04:27:56 containerexecutor.go:84: [containerexecutor] Container erstellen : c22c72a303
16.06.2020 04:28:01 containerexecutor.go:102: [containerexecutor] Containerausführungsstatus : 1
16.06.2020 04:28:01 containerexecutor.go:111: [containerexecutor] Fehlerantwort vom Daemon: Kann keine Protokolle von Container abrufen, der tot oder zum Entfernen markiert ist
16.06.2020 04:28:01 Orchestration_api.go:340: [orchestrationapi] Dienststatus geändert [appNames:age_detection][status:]
16.06.2020 04:28:01 containerexecutor.go:122: [containerexecutor] Fehlerantwort vom Daemon: Entfernen des Containers c22c72a303bff50d18b4af5d5b7d644256cdd8fb2c7d2b08ccfa2ea225b3aa7f wird bereits ausgeführt
Ich erhalte diese Fehler beim Ausführen von Alterserkennungscontainern (Echtzeit und Video) auf Edge-Orchestrierung. Es erfasst den ersten Anwendungsrahmen, wird dann aber automatisch als toter Container markiert.
@Deepak-Enc: Wir konnten den Protokollen entnehmen, dass der Container nach dem Lesen des ersten Frames aufgrund eines Fehlers zum Entfernen markiert wird. Aber genau warum versuchen wir auch herauszufinden. Können Sie die vollständige Fehlerprotokolldatei freigeben. Und auch wenn Sie das Video der Schritte, die Sie gemacht haben, teilen könnten, wäre es eine große Hilfe.
Unten sehen Sie ein Video, wie ein Container unter Edge-Orchestrierung funktioniert
Ubuntu_v16_04 [Läuft] - Oracle VM VirtualBox 6_16_2020 9_30_15 AM.zip
Das von Ihnen gesendete Protokoll zeigt, dass die Anwendung im Container nicht ordnungsgemäß abgeschlossen wurde. Mehr Daten benötigt
@Deepak-Enc: Können Sie die Baobab-Filiale nehmen und das Szenario ausprobieren.
Anscheinend wird keine Container-Whitelisting für Dienste durchgeführt, die über Edge-Orchestrierung gestartet wurden.
err := verifier.GetInstance().ContainerIsInWhiteList(s.ParamStr[paramLen-1]).
Daher können Sie es einmal mit Baobab-Zweig versuchen und uns das Ergebnis mitteilen.
Es funktioniert auf Baobab. Danke schön.
Problem gelöst. @suresh-lc @tdrozdovsky @Deepak-Enc Danke für all deine Interessen und Leidenschaft!
Hilfreichster Kommentar
Es funktioniert auf Baobab. Danke schön.