kerberos-io/machinery

Machinery does not run in arm/v7 dockerimage

GittyDan opened this issue · 9 comments

I tried the kerberos/kerberos:latest dockerimages on two architectures. both times i started a blank container.

Docker for Windows: linux/amd64
grafik

Qnap TS-431P2 NAS: linux/arm/v7
grafik

Here the console output of the container:

docker run -p 801:80 -p 8889:8889 kerberos/kerberos:latest
Config files are available.
Config files are available.
2020-12-21 22:26:25,561 CRIT Set uid to user 0
2020-12-21 22:26:25,590 INFO RPC interface 'supervisor' initialized
2020-12-21 22:26:25,590 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2020-12-21 22:26:25,590 INFO supervisord started with pid 27
2020-12-21 22:26:26,594 INFO spawned: 'nginx' with pid 30
2020-12-21 22:26:26,597 INFO spawned: 'machinery' with pid 31
2020-12-21 22:26:26,769 INFO exited: machinery (exit status 255; not expected)
2020-12-21 22:26:27,771 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-12-21 22:26:27,773 INFO spawned: 'machinery' with pid 38
2020-12-21 22:26:27,948 INFO exited: machinery (exit status 255; not expected)
2020-12-21 22:26:29,953 INFO spawned: 'machinery' with pid 41
2020-12-21 22:26:30,122 INFO exited: machinery (exit status 255; not expected)
2020-12-21 22:26:33,128 INFO spawned: 'machinery' with pid 44

The machinery is exiting all the time.

Edit: Sry, wrong repo. must be kerberos-docker-repo.

Hey @GittyDan ,

running in the same issue. Did You find a sollution. I looked into the docker department and didnt find the issue issued there. I assume you solved it.

Can You give a hint if so ?

Many greetings

I am running into the same issue on Raspberry Pi 4. Any solution?
image

Thanks for reporting all, could one of you share the machinery logs?

I am not sure if these are the Machinery logs, but here are the logs from the System view, hope it helps.

- expositors.Rectangle.region.x1 = 0
- expositors.Rectangle.region.x2 = 800
- expositors.Rectangle.region.y1 = 0
- expositors.Rectangle.region.y2 = 600
- heuristic = Sequence
- heuristics.Counter.appearance = 3
- heuristics.Counter.markers = 100,100|100,200|200,100|200,200
- heuristics.Counter.maxDistance = 140
- heuristics.Counter.minArea = 200
- heuristics.Counter.minimumChanges = 20
- heuristics.Counter.noMotionDelayTime = 100
- heuristics.Counter.onlyTrueWhenCounted = true
- heuristics.Sequence.minimumChanges = 20
- heuristics.Sequence.minimumDuration = 2
- heuristics.Sequence.noMotionDelayTime = 1000
- io = Video
- ios.Disk.directory = /etc/opt/kerberosio/capture/
- ios.Disk.fileFormat = timestamp_microseconds_instanceName_regionCoordinates_numberOfChanges_token.jpg
- ios.Disk.markWithTimestamp = false
- ios.Disk.privacy = false
- ios.Disk.throttler = 0
- ios.Disk.timestampColor = white
- ios.GPIO.periodTime = 100000
- ios.GPIO.periods = 1
- ios.GPIO.pin = 17
- ios.GPIO.throttler = 0
- ios.MQTT.clientId = 
- ios.MQTT.password = 
- ios.MQTT.port = 1883
- ios.MQTT.secure = false
- ios.MQTT.server = 127.0.0.1
- ios.MQTT.throttler = 0
- ios.MQTT.topic = kios/mqtt
- ios.MQTT.username = 
- ios.MQTT.verifycn = false
- ios.Pushbullet.throttler = 10
- ios.Pushbullet.token = o.mC5LPVCvPCphtSsEgWZQpFM86w9ciWQ3
- ios.Pushbullet.url = https://api.pushbullet.com
- ios.Script.path = /etc/opt/kerberosio/scripts/run.sh
- ios.Script.throttler = 0
- ios.TCPSocket.message = motion-detected
- ios.TCPSocket.port = 1337
- ios.TCPSocket.server = 127.0.0.1
- ios.TCPSocket.throttler = 0
- ios.Video.codec = h264
- ios.Video.directory = /etc/opt/kerberosio/capture/
- ios.Video.enableHardwareEncoding = true
- ios.Video.extension = mp4
- ios.Video.fileFormat = timestamp_microseconds_instanceName_regionCoordinates_numberOfChanges_token
- ios.Video.fps = 30
- ios.Video.hardwareDirectory = /etc/opt/kerberosio/h264/
- ios.Video.markWithTimestamp = false
- ios.Video.maxDuration = 30
- ios.Video.privacy = false
- ios.Video.recordAfter = 5
- ios.Video.throttler = 0
- ios.Video.timestampColor = white
- ios.Webhook.throttler = 0
- ios.Webhook.url = http://localhost/api/v1/webhook
- logging = false
- name = frontdoor
- stream = Mjpg
- streams.Mjpg.enabled = true
- streams.Mjpg.fps = 15
- streams.Mjpg.password = 
- streams.Mjpg.quality = 75
- streams.Mjpg.streamPort = 8889
- streams.Mjpg.username = 
- timezone = Europe-Brussels
12/02/2021 07:42:38.840 INFO  [trivial] Logging is set to info
12/02/2021 07:42:38.841 INFO  [trivial] Capture: Start capture device: RaspiCamera
12/02/2021 07:42:38.841 INFO  [trivial] Capture: Trying to open Raspberry Pi camera module.
12/02/2021 07:42:38.841 INFO  [trivial] Capture: (Warning) If you see a OMX_GetHandle error, this means that you don't have a working RPi camera module attached.
12/02/2021 07:42:38.841 INFO  [trivial] Capture: (Warning) You can change the capture device with the configuration files.
12/02/2021 07:42:42.031 INFO  [trivial] Logging is written to: /etc/opt/kerberosio/logs/log.stash
12/02/2021 07:42:42.037 INFO  [trivial] Reading configuration file: /etc/opt/kerberosio/config/config.xml
12/02/2021 07:42:42.041 INFO  [trivial] Final configuration:
- algorithm = DifferentialCollins
- algorithms.BackgroundSubtraction.dilate = 7
- algorithms.BackgroundSubtraction.erode = 5
- algorithms.BackgroundSubtraction.history = 15
- algorithms.BackgroundSubtraction.nmixtures = 5
- algorithms.BackgroundSubtraction.ratio = 1
- algorithms.BackgroundSubtraction.shadows = false
- algorithms.BackgroundSubtraction.threshold = 10
- algorithms.DifferentialCollins.erode = 5
- algorithms.DifferentialCollins.threshold = 15
- capture = RaspiCamera
- captures.IPCamera.angle = 0
- captures.IPCamera.delay = 500
- captures.IPCamera.frameHeight = 480
- captures.IPCamera.frameWidth = 640
- captures.IPCamera.url = rtsp://admin:888888@192.168.0.13/tcp/av0_1
- captures.RaspiCamera.angle = 0
- captures.RaspiCamera.brightness = 50
- captures.RaspiCamera.contrast = 0
- captures.RaspiCamera.delay = 500
- captures.RaspiCamera.frameHeight = 480
- captures.RaspiCamera.frameWidth = 640
- captures.RaspiCamera.framerate = 20
- captures.RaspiCamera.saturation = 0
- captures.RaspiCamera.sharpness = 0
- captures.USBCamera.angle = 0
- captures.USBCamera.delay = 500
- captures.USBCamera.deviceNumber = 0
- captures.USBCamera.fourcc = MJPG
- captures.USBCamera.frameHeight = 480
- captures.USBCamera.frameWidth = 640
- captures.VideoCapture.angle = 0
- captures.VideoCapture.delay = 500
- captures.VideoCapture.frameHeight = 480
- captures.VideoCapture.frameWidth = 640
- captures.VideoCapture.path = 0
- cloud = S3
- clouds.S3.bucket = 
- clouds.S3.folder = 
- clouds.S3.privateKey = 
- clouds.S3.publicKey = 
- condition = Enabled
- conditions.Enabled.active = true
- conditions.Enabled.delay = 5000
- conditions.Time.delay = 10000
- conditions.Time.times = 0:01,23:59-0:01,23:59-0:01,23:59-0:01,23:59-0:01,23:59-0:01,23:59-0:01,23:59
- configuration = /etc/opt/kerberosio/config/config.xml
- expositor = Hull
- expositors.Hull.region = 779,588|781,28|588,48|377,31|208,63|32,45|33,625|191,591|347,600|456,572|556,601|659,629
- expositors.Rectangle.region.x1 = 0
- expositors.Rectangle.region.x2 = 800
- expositors.Rectangle.region.y1 = 0
- expositors.Rectangle.region.y2 = 600
- heuristic = Sequence
- heuristics.Counter.appearance = 3
- heuristics.Counter.markers = 100,100|100,200|200,100|200,200
- heuristics.Counter.maxDistance = 140
- heuristics.Counter.minArea = 200
- heuristics.Counter.minimumChanges = 20
- heuristics.Counter.noMotionDelayTime = 100
- heuristics.Counter.onlyTrueWhenCounted = true
- heuristics.Sequence.minimumChanges = 20
- heuristics.Sequence.minimumDuration = 2
- heuristics.Sequence.noMotionDelayTime = 1000
- io = Video
- ios.Disk.directory = /etc/opt/kerberosio/capture/
- ios.Disk.fileFormat = timestamp_microseconds_instanceName_regionCoordinates_numberOfChanges_token.jpg
- ios.Disk.markWithTimestamp = false
- ios.Disk.privacy = false
- ios.Disk.throttler = 0
- ios.Disk.timestampColor = white
- ios.GPIO.periodTime = 100000
- ios.GPIO.periods = 1
- ios.GPIO.pin = 17
- ios.GPIO.throttler = 0
- ios.MQTT.clientId = 
- ios.MQTT.password = 
- ios.MQTT.port = 1883
- ios.MQTT.secure = false
- ios.MQTT.server = 127.0.0.1
- ios.MQTT.throttler = 0
- ios.MQTT.topic = kios/mqtt
- ios.MQTT.username = 
- ios.MQTT.verifycn = false
- ios.Pushbullet.throttler = 10
- ios.Pushbullet.token = o.mC5LPVCvPCphtSsEgWZQpFM86w9ciWQ3
- ios.Pushbullet.url = https://api.pushbullet.com
- ios.Script.path = /etc/opt/kerberosio/scripts/run.sh
- ios.Script.throttler = 0
- ios.TCPSocket.message = motion-detected
- ios.TCPSocket.port = 1337
- ios.TCPSocket.server = 127.0.0.1
- ios.TCPSocket.throttler = 0
- ios.Video.codec = h264
- ios.Video.directory = /etc/opt/kerberosio/capture/
- ios.Video.enableHardwareEncoding = true
- ios.Video.extension = mp4
- ios.Video.fileFormat = timestamp_microseconds_instanceName_regionCoordinates_numberOfChanges_token
- ios.Video.fps = 30
- ios.Video.hardwareDirectory = /etc/opt/kerberosio/h264/
- ios.Video.markWithTimestamp = false
- ios.Video.maxDuration = 30
- ios.Video.privacy = false
- ios.Video.recordAfter = 5
- ios.Video.throttler = 0
- ios.Video.timestampColor = white
- ios.Webhook.throttler = 0
- ios.Webhook.url = http://localhost/api/v1/webhook
- logging = false
- name = frontdoor
- stream = Mjpg
- streams.Mjpg.enabled = true
- streams.Mjpg.fps = 15
- streams.Mjpg.password = 
- streams.Mjpg.quality = 75
- streams.Mjpg.streamPort = 8889
- streams.Mjpg.username = 
- timezone = Europe-Brussels
12/02/2021 07:42:42.041 INFO  [trivial] Logging is set to info
12/02/2021 07:42:42.041 INFO  [trivial] Capture: Start capture device: RaspiCamera
12/02/2021 07:42:42.042 INFO  [trivial] Capture: Trying to open Raspberry Pi camera module.
12/02/2021 07:42:42.042 INFO  [trivial] Capture: (Warning) If you see a OMX_GetHandle error, this means that you don't have a working RPi camera module attached.
12/02/2021 07:42:42.042 INFO  [trivial] Capture: (Warning) You can change the capture device with the configuration files.

Are you connecting a Raspberry Pi camera?

No, I want to use an external IP camera with an RTSP stream

Then you should change it to IPCamera. Currently it is set to Raspberry Pi camera.

- capture = RaspiCamera

Ah okay. I see. In my case, I wanted to use an IP camera, but because it was still set to RaspiCamera (That was not connected) it failed.

How I fixed it:

  • Set up the IP camera first and make sure the config for the IP camera is saved correctly.
  • Restart the docker container
  • It worked, I can see my live stream from the IP Camera. (I did not realize that a broken cam config would cause Machinery to not run, must have missed it)

Thanks for the help @cedricve. Much appreciated. :)

No worries we are adding an autodetect or warning in the next major release 3.0. So it is more obvious.
https://github.com/kerberos-io/opensource