L'image Docker fonctionne correctement sur mon système, mais lorsque vous l'exécutez sur l'orchestration de bord, elle me montre les erreurs :
Fonctionne parfaitement sur mon système :
Voici la commande que j'exécute :
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 J'ai réussi à reproduire votre cas avec une erreur et j'ai également lancé avec succès le conteneur à l'aide de l'orchestration de bord.
Ci-dessous la commande que j'ai fait pour lancer avec succès
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:~$
Arrêtez le conteneur en cours d'exécution, et après cela, vous pouvez commencer à utiliser l'orchestration de bord
S'il vous plaît donner votre avis quel est votre résultat? J'espère que tout s'est bien passé pour vous. Si vous avez des questions, nous nous ferons un plaisir de vous répondre !
Recevoir la même erreur.
Vous devez vous assurer que le programme dans le conteneur animeshj123/age_det_image:02
démarre correctement, car la ligne container execution status : 1
indique qu'une erreur s'est produite dans le programme lui-même.
Je suggère de le faire. Après cela, je vois que tout fonctionne correctement :
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:~$
Je vois aussi une telle erreur.
il peut être corrigé si redémarrer le docker (redémarrage du docker de service)
Le même conteneur fonctionne bien sur votre périphérie et également sur mon hôte local qui
signifie que le programme n'a aucun problème. il peut y avoir un problème sur mon
edge-orchestration comment résoudre ce problème.
Le lundi 15 juin 2020, 16:25 tdrozdovsky, [email protected] a écrit :
Vous devez vous assurer que le programme dans l' image animeshj123/age_det_
le conteneur démarre correctement, car l'état d'exécution du conteneur : 1 ligne
montre qu'une erreur s'est produite dans le programme lui-même.
[image: изображение]
https://user-images.githubusercontent.com/45031429/84649763-bd171c00-af0f-11ea-9ff6-7ba80aea6662.pngJe suggère de le faire. Après cela, je vois que tout fonctionne correctement :
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] mot de passe pour virtual-pc :
[INFO] chargement du modèle de détecteur de visage...
[INFO] chargement du modèle de détecteur d'âge...
[INFO] démarrage du flux vidéo...
^CTraceback (appel le plus récent en dernier) :
Fichier "detect_age_cam.py", ligne 121, dans
results = detect_and_predict_age(frame, faceNet, ageNet,
Fichier "detect_age_cam.py", ligne 29, dans detect_and_predict_age
detections = faceNet.forward()
ClavierInterruption
virtual-pc@virtualpc-VirtualBox :~$ docker ps -a
COMMANDE D'IMAGE D'ID DE CONTENEUR ÉTAT CRÉÉ NOMS DE PORTS
f1a1dacb70fd edge-orch estration:baobab "sh run.sh" il y a 17 heures Jusqu'à 17 heures 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 :~$
Je vois aussi une telle erreur.
[image: изображение]
https://user-images.githubusercontent.com/45031429/84649385-1d598e00-af0f-11ea-9b6a-43a7780c7cf5.png
il peut être corrigé si redémarrer le docker (redémarrage du docker de service)-
Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/lf-edge/edge-home-orchestration-go/issues/91#issuecomment-644056795 ,
ou se désinscrire
https://github.com/notifications/unsubscribe-auth/ANR2JO4EKLU3UYAYP4OSZB3RWX4ZPANCNFSM4N42UCTA
.
Vous trouverez ci-dessous un exemple de la façon dont cela peut ne pas fonctionner correctement
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'
regarde maintenant le code d'erreur
virtual-pc@virtualpc-VirtualBox:~$ echo $?
1
l'erreur est la même que les retours de l'orchestrateur de bord
Je pense qu'il faut chercher les raisons pour lesquelles le programme ne fonctionne pas correctement (par exemple, il n'y a pas d'accès à /dev/video0
ou autres)
Veuillez lever mon doute. Cela fonctionne bien sur ma machine hôte, ce qui signifie qu'il n'y a pas de problème dans le conteneur docker ou le fichier docker. Il peut y avoir un problème avec l'orchestration de bord car je ne parviens pas à détecter dans le conteneur ou le fichier docker.
@Deepak-Enc Veuillez décrire beaucoup plus en détail ce qu'est "un problème avec l'orchestration de bord". D'après ce que j'ai compris, votre conteneur de ciblage s'exécute avec succès sur votre hôte local via un conteneur docker/fichier docker, mais il échoue lorsque vous essayez de l'exécuter sur l'orchestration périphérique. Nous vous avons guidé plusieurs recommandations, mais il n'est toujours pas clair de résoudre ce problème. Avons-nous raison ?
@suresh-lc Quelle est votre opinion ? Cela ne semble pas être juste un problème de configuration.
2020/06/16 04:27:56 containerexecutor.go:84: [containerexecutor] créer un conteneur : c22c72a303
2020/06/16 04:28:01 containerexecutor.go:102 : [containerexecutor] état d'exécution du conteneur : 1
2020/06/16 04:28:01 containerexecutor.go:111: [containerexecutor] Réponse d'erreur du démon : impossible d'obtenir les journaux du conteneur qui est mort ou marqué pour suppression
16/06/2020 04:28:01 orchestration_api.go:340 : l'état du service [orchestrationapi] a changé [appNames:age_detection][status :]
2020/06/16 04:28:01 containerexecutor.go:122 : [containerexecutor] Réponse d'erreur du démon : la suppression du conteneur c22c72a303bff50d18b4af5d5b7d644256cdd8fb2c7d2b08ccfa2ea225b3aa7f est déjà en cours
Je reçois ces erreurs lors de l'exécution de conteneurs de détection d'âge (en temps réel et vidéo) sur l'orchestration de bord. Il capture le premier cadre d'application, mais ensuite automatiquement le conteneur marqué comme un conteneur mort.
@Deepak-Enc : Nous avons pu voir dans les journaux que le conteneur est marqué pour suppression après la lecture de la première image en raison d'une erreur. Mais exactement pourquoi nous essayons également de trouver. Pouvez-vous partager le fichier journal des erreurs complet. Et aussi si vous pouviez partager la vidéo des étapes que vous avez faites, ce serait d'une grande aide.
Vous trouverez ci-dessous une vidéo du fonctionnement d'un conteneur sous edge-orchestration
Ubuntu_v16_04 [En cours d'exécution] - Oracle VM VirtualBox 6_16_2020 9_30_15 AM.zip
Le journal que vous avez envoyé montre que l'application dans le conteneur ne s'est pas terminée correctement. Plus de données nécessaires
@Deepak-Enc : Pouvez-vous prendre la branche Baobab et essayer le scénario.
Il semble que la liste blanche des conteneurs n'est pas effectuée pour le service démarré à partir de l'orchestration Edge.
err := verifier.GetInstance().ContainerIsInWhiteList(s.ParamStr[paramLen-1]).
Par conséquent, pouvez-vous une fois essayer avec la branche Baobab et nous faire part du résultat.
Ça marche sur le baobab. Merci.
Problème résolu. @suresh-lc @tdrozdovsky @Deepak-Enc Merci pour tous vos intérêts et votre passion !
Commentaire le plus utile
Ça marche sur le baobab. Merci.