doitandbedone / ispyagentdvr-docker

GNU General Public License v3.0
119 stars 45 forks source link

Support Arm/ Arm64 #162

Open ispysoftware opened 3 years ago

ispysoftware commented 3 years ago

Is there a way to detect and install the Arm/ Arm64 binaries and dependencies in Docker if it's Arm hardware?

doitandbedone commented 3 years ago

Usually pick the image as they need to. There might be a way if I use docker compose, not too familiar yet I'll look into it. For now the standard is to pick the correct image. I can add instructions on the readme.

On Fri, Feb 5, 2021, 6:51 PM sean tearney notifications@github.com wrote:

Is there a way to detect and install the Arm/ Arm64 binaries and dependencies in Docker if it's Arm hardware?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/doitandbedone/ispyagentdvr-docker/issues/162, or unsubscribe https://github.com/notifications/unsubscribe-auth/AORTFNCTUSJW42SN63LXJQDS5SVCRANCNFSM4XFZF6PQ .

KemyszPL commented 3 years ago

I'm also facing this issue. I'm trying to install it on my Raspberry Pi, however I'm getting the exec user process caused: exec format error, which basically means the architecture is not supported. Please add instructions to the readme, as I'm confused on what I should do.

ispysoftware commented 3 years ago

There's an arm download and instructions on the download page on the website

doitandbedone commented 3 years ago

There's currently no support for ispy and ARM on docker, however you may install ispy directly, please follow instructions here: https://www.ispyconnect.com/download.aspx

nogueirasa commented 3 years ago

Hello @doitandbedone , Very nice work, but tag "multi-arch" didn't work for rpi4 4GB with:

Raspberry Pi OS Lite Release date: January 11th 2021 Kernel version: 5.4

with docker-compose:

  agentdvr:
    container_name: agentdvr
    image: doitandbedone/ispyagentdvr:multi-arch
    volumes:
      - /home/pi/agentdvr:/agent/Media/XML
      - /home/pi/agentdvr/media:/agent/Media/WebServerRoot/Media
      - /home/pi/agentdvr/commands:/agent/Commands
    restart: always
    network_mode: host

Getting error: standard_init_linux.go:219: exec user process caused: exec format error

I'm also tryed with the digest code of multi-arch armv7:

doitandbedone/ispyagentdvr@sha256:1f2a3f30a0cd40e5624a2e52ede318d588b4b95c61b7d965c7ab374072ed15b2

nogueirasa commented 3 years ago

There's currently no support for ispy and ARM on docker, however you may install ispy directly, please follow instructions here: https://www.ispyconnect.com/download.aspx

Sorry, read your comment after posting mine

doitandbedone commented 3 years ago

No problem. Got pretty far with it but then hit some roadblocks. If things change I'll get back to it.

On Sat, Mar 20, 2021, 12:44 PM Ricardo Sa @.***> wrote:

There's currently no support for ispy and ARM on docker, however you may install ispy directly, please follow instructions here: https://www.ispyconnect.com/download.aspx

Sorry, read your comment after posting mine

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/doitandbedone/ispyagentdvr-docker/issues/162#issuecomment-803453495, or unsubscribe https://github.com/notifications/unsubscribe-auth/AORTFNCNCGBEL532MGCJIB3TET3LRANCNFSM4XFZF6PQ .

drlauridsen commented 3 years ago

Tried building an arm docker image for RPI4, using your dockerfile, changing agent, bionic and dependencies to arm32, it builds, but I get an error and container stops running..

Unhandled exception. System.TypeInitializationException: The type initializer for 'Emgu.CV.MatInvoke' threw an exception., ---> System.TypeInitializationException: The type initializer for 'Emgu.CV.CvInvoke' threw an exception., ---> System.DllNotFoundException: Unable to load shared library 'cvextern' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libcvextern: cannot open shared object file: No such file or directory, at Emgu.CV.CvInvoke.RedirectError(CvErrorCallback errorHandler, IntPtr userdata, IntPtr prevUserdata), at Emgu.CV.CvInvoke..cctor(), --- End of inner exception stack trace ---, at Emgu.CV.CvInvoke.CheckLibraryLoaded(), at Emgu.CV.MatInvoke..cctor(), --- End of inner exception stack trace ---, at Emgu.CV.MatInvoke.cveMatCreate(), at CoreLogic.Utilities.Imaging.LoadStaticImages(), at CoreLogic.Threads.StartUp(), at AgentCore.Code.Initialize.Go(), at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__139_1(Object state), at System.Threading.QueueUserWorkItemCallbackDefaultContext.Execute(), at System.Threading.ThreadPoolWorkQueue.Dispatch(), at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(),

Any suggestions to why I get this error?

doitandbedone commented 3 years ago

As stated before please install directly instead of using docker for ARM based systems. There's unfortunately limited support for it on dependencies and also adds unnecessary overhead.

On Tue, May 4, 2021, 7:15 AM Johnny @.***> wrote:

Tried building an arm docker image for RPI4, using your dockerfile, changing agent, bionic and dependencies to arm32, it builds, but I get an error and container stops running..

Unhandled exception. System.TypeInitializationException: The type initializer for 'Emgu.CV.MatInvoke' threw an exception., ---> System.TypeInitializationException: The type initializer for 'Emgu.CV.CvInvoke' threw an exception., ---> System.DllNotFoundException: Unable to load shared library 'cvextern' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libcvextern: cannot open shared object file: No such file or directory, at Emgu.CV.CvInvoke.RedirectError(CvErrorCallback errorHandler, IntPtr userdata, IntPtr prevUserdata), at Emgu.CV.CvInvoke..cctor(), --- End of inner exception stack trace ---, at Emgu.CV.CvInvoke.CheckLibraryLoaded(), at Emgu.CV.MatInvoke..cctor(), --- End of inner exception stack trace ---, at Emgu.CV.MatInvoke.cveMatCreate(), at CoreLogic.Utilities.Imaging.LoadStaticImages(), at CoreLogic.Threads.StartUp(), at AgentCore.Code.Initialize.Go(), at System.Threading.Tasks.Task.<>c.b__139_1(Object state), at System.Threading.QueueUserWorkItemCallbackDefaultContext.Execute(), at System.Threading.ThreadPoolWorkQueue.Dispatch(), at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(),

Any suggestions to why I get this error?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/doitandbedone/ispyagentdvr-docker/issues/162#issuecomment-831976173, or unsubscribe https://github.com/notifications/unsubscribe-auth/AORTFNE2B2HCCZWCPBG2VYDTL76QFANCNFSM4XFZF6PQ .

drlauridsen commented 3 years ago

Thanks Already installed it directly, which works fine.. But it really annoys me that I cant get the docker install to work.. 🤔 I have found the dotnet bionic arm image, and dependencies for libjpegturbo etc, and still get the error. Just hoped you had a suggestion, since it seems you also tried working on an arm image.

dp106 commented 3 years ago

I'm running Docker Ubuntu on a Pi4 and get the same issue. Confused as I thought the whole point of Docker was you could run it on whatever host OS you wanted?! I've installed a bunch of other images no issue so not sure what the problem is with this one?

davidcampelo commented 3 years ago

+1

rocket357 commented 3 years ago

I've submitted #251 for arm32v7 and arm64v8. The big issue I see is that bionic doesn't have GLIBC 2.28 support in libc, which is required by libcvextern, so it fails to load. Bumping that to focal caused some repository issues, so I based it on Buster, which seems to work but needs testing.

Also, getting architecture detection/support in a single Dockerfile gave me fits, so I split them off into separate Dockerfiles.

doitandbedone commented 3 years ago

Thank you for your contribution @rocket357, a new branch with your changes has been created and will be reviewed. Anyone else that may be curious is welcomed to try it out, although, do remember it has not been fully tested and would instead recommend direct install instructed here: https://www.ispyconnect.com/download.aspx

grinco commented 1 year ago

Try using https://hub.docker.com/r/grinco/ispyagentdvr in the meantime. Tested on Radxa rock 5b. I'll adjust the docker file so it builds on multiple architectures and create a pull request to merge it.