La imagen de Docker funciona bien en mi sistema, pero cuando la ejecuto en la orquestación de borde, me muestra los errores:
Funcionando perfecto en mi sistema:
Aquí está el comando que estoy ejecutando:
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 \": \ "contenedor \", \ "ExecCmd \": [\ "docker \", \ "ejecutar \", \ "- it \" , \ "- rm \", \ "- dispositivo = / dev / video0 \", \ "- e \", \ "PANTALLA = $ PANTALLA \", \ "- 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 Reproduje con éxito su caso con un error y también lancé con éxito el contenedor usando edge-orchestration.
A continuación se muestra el comando que hice para iniciar con éxito
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:~$
Detenga el contenedor en ejecución y, después de eso, puede comenzar a usar la orquestación perimetral
Por favor, envíenos sus comentarios. ¿Cuál es su resultado? Espero que todo te haya salido bien. Si tiene alguna pregunta, estaremos encantados de responderle.
Recibiendo el mismo error.
Debe asegurarse de que el programa en el contenedor animeshj123/age_det_image:02
inicie correctamente, ya que la línea container execution status : 1
muestra que se ha producido un error en el programa.
Sugiero hacerlo. Después de eso, veo que todo funciona correctamente:
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:~$
También veo ese error.
se puede solucionar si se reinicia la ventana acoplable (reinicio de la ventana acoplable del servicio)
El mismo contenedor funciona bien en su borde y también en mi localhost que
significa que el programa no tiene ningún problema. puede haber un problema en mi
Edge-Orchestration cómo resolver este problema.
El lunes 15 de junio de 2020 a las 16:25 tdrozdovsky, [email protected] escribió:
Debe asegurarse de que el programa en la imagen animeshj123 / age_det_ : 02
contenedor se inicia correctamente, ya que el estado de ejecución del contenedor: 1 línea
muestra que se ha producido un error en el propio programa.
[imagen: изображение]
https://user-images.githubusercontent.com/45031429/84649763-bd171c00-af0f-11ea-9ff6-7ba80aea6662.pngSugiero hacerlo. Después de eso, veo que todo funciona correctamente:
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] contraseña para virtual-pc:
[INFO] cargando modelo de detector facial ...
[INFO] cargando modelo de detector de edad ...
[INFO] iniciando transmisión de video ...
^ CTraceback (última llamada más reciente):
Archivo "detect_age_cam.py", línea 121, en
results = detect_and_predict_age(frame, faceNet, ageNet,
Archivo "detect_age_cam.py", línea 29, en detect_and_predict_age
detections = faceNet.forward()
Teclado Interrumpido
virtual-pc @ virtualpc-VirtualBox : ~ $ docker ps -a
ID DE CONTENEDOR COMANDO DE IMAGEN ESTADO CREADO NOMBRES DE PUERTOS
f1a1dacb70fd edge- orch estration: baobab "sh run.sh" hace 17 horas Hasta 17 horas 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 \ ": \" contenedor \ ", \" ExecCmd \ ": [\" docker \ ", \" ejecutar \ ", \" - it \ ", \" - rm \ ", \" - dispositivo = / dev / video0 \ ", \" - net = host \ ", \" - ipc = host \ ", \" - e \ ", \" PANTALLA = $ PANTALLA \ ", \" - 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": "contenedor", "Target": "10.0.2.15"}, "ServiceName": "age_detection"} virtual-pc @ virtualpc-VirtualBox : ~ PS
virtual-pc @ virtualpc-VirtualBox : ~ $
También veo ese error.
[imagen: изображение]
https://user-images.githubusercontent.com/45031429/84649385-1d598e00-af0f-11ea-9b6a-43a7780c7cf5.png
se puede solucionar si se reinicia la ventana acoplable (reinicio de la ventana acoplable del servicio)-
Recibes esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/lf-edge/edge-home-orchestration-go/issues/91#issuecomment-644056795 ,
o darse de baja
https://github.com/notifications/unsubscribe-auth/ANR2JO4EKLU3UYAYP4OSZB3RWX4ZPANCNFSM4N42UCTA
.
A continuación se muestra un ejemplo de cómo puede no funcionar correctamente
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'
ahora mira el código de error
virtual-pc@virtualpc-VirtualBox:~$ echo $?
1
el error es el mismo que el orquestador de bordes devuelve
Creo que es necesario buscar razones por las que el programa no funciona correctamente (por ejemplo, no hay acceso a /dev/video0
u otros)
Amablemente aclare mi duda. Está funcionando bien en mi máquina host, lo que significa que no hay ningún problema en el contenedor de la ventana acoplable o en el archivo de la ventana acoplable. Puede haber un problema con la orquestación de bordes porque no puedo detectar en el contenedor o en el archivo de la ventana acoplable.
@ Deepak-Enc Por favor, describa mucho más en detalle sobre lo que es "un problema con la orquestación de bordes". Según tengo entendido, su contenedor de orientación se ejecuta con éxito en su host local a través de un contenedor de ventana acoplable / archivo de ventana acoplable, pero falla cuando intenta ejecutarlo en la orquestación de borde. Le hemos guiado varias recomendaciones, pero aún no está claro resolver este problema. ¿Estamos en lo correcto?
@ suresh-lc ¿Cuál es tu opinión? No parece ser solo un problema de configuración.
2020/06/16 04:27:56 containerexecutor.go: 84: [containerexecutor] crear contenedor: c22c72a303
2020/06/16 04:28:01 containerexecutor.go: 102: [containerexecutor] estado de ejecución del contenedor: 1
2020/06/16 04:28:01 containerexecutor.go: 111: [containerexecutor] Respuesta de error del demonio: no se pueden obtener registros del contenedor que está muerto o marcado para su eliminación
2020/06/16 04:28:01 orchestration_api.go: 340: el estado del servicio [orchestrationapi] cambió [appNames: age_detection] [status:]
2020/06/16 04:28:01 containerexecutor.go: 122: [containerexecutor] Respuesta de error del demonio: la eliminación del contenedor c22c72a303bff50d18b4af5d5b7d644256cdd8fb2c7d2b08ccfa2ea225b3aa7f ya está en curso
Recibo estos errores al ejecutar contenedores de detección de edad (en tiempo real y video) en la orquestación de bordes. Captura el primer fotograma de la aplicación, pero luego el contenedor se marca automáticamente como contenedor muerto.
@ Deepak-Enc: pudimos ver en los registros que el contenedor se está marcando para su eliminación después de leer el primer cuadro debido a algún error. Pero exactamente por qué también estamos tratando de encontrar. ¿Puede compartir el archivo de registro de errores completo? Y además, si pudieras compartir el video de los pasos que hiciste, sería de gran ayuda.
A continuación se muestra un video de cómo funciona un contenedor bajo orquestación de borde
Ubuntu_v16_04 [En ejecución] - Oracle VM VirtualBox 6_16_2020 9_30_15 AM.zip
El registro que envió muestra que la aplicación en el contenedor no finalizó correctamente. Se necesitan más datos
@ Deepak-Enc: ¿Puedes tomar la rama Baobab y probar el escenario?
Parece que la lista blanca de contenedores no se está realizando para el servicio iniciado desde la orquestación perimetral.
err: = verificador.GetInstance (). ContainerIsInWhiteList (s.ParamStr [paramLen-1]).
Por lo tanto, puede probar una vez con la rama Baobab y hacernos saber el resultado.
Está trabajando en baobab. Gracias.
Problema resuelto. @ suresh-lc @tdrozdovsky @ Deepak-Enc ¡Gracias por todos sus intereses y pasión!
Comentario más útil
Está trabajando en baobab. Gracias.