Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux arm64 support #17

Closed
Wh1tesnake opened this issue Mar 29, 2021 · 11 comments
Closed

Linux arm64 support #17

Wh1tesnake opened this issue Mar 29, 2021 · 11 comments
Assignees
Labels
enhancement New feature or request

Comments

@Wh1tesnake
Copy link

Wh1tesnake commented Mar 29, 2021

Hardware:
OdroidC2 with Armbian Xenial OS

Problem Description:
I've followed the recommended instruction for IBeam installation through Docker. When I tried to run the following command (Of course, I didn't put my real account and password here):
docker run --env IBEAM_ACCOUNT=your_account123 --env IBEAM_PASSWORD=your_password123 -p 5000:5000 voyz/ibeam

I encountered this error:
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
standard_init_linux.go:219: exec user process caused: exec format error

Describe the feature
Arm support for IBeam.

Expected interaction
No user interaction.

Possible implications
I don't know.

Thanks for your help!

@Wh1tesnake Wh1tesnake added the enhancement New feature or request label Mar 29, 2021
@Voyz
Copy link
Owner

Voyz commented Mar 30, 2021

Hey @Wh1tesnake welcome to IBeam! 👋😊 That's a very interesting use case and I'm glad you brought it up, so thanks for creating this issue and for the detailed description!

We could definitely have a look at building an ARM image - I've found some documentation describing how to do it:

https://www.docker.com/blog/multi-arch-images/

I'm happy to give it a shot although I haven't got an ARM machine I could test it on. Would you prefer to attempt building IBeam yourself (it's pretty straightforward - have a look at Building a Docker image) - or for me to attempt to build it and make it available to you?

@Voyz Voyz self-assigned this Mar 30, 2021
@Wh1tesnake
Copy link
Author

Hi @Voyz, thanks for the welcome.

I'm pretty new to docker and I'd prefer for you to build the IBeam image. On the other side, I'll be glad to offer my testing service with my ARM board!

Thanks for your help!

@Voyz
Copy link
Owner

Voyz commented Mar 30, 2021

@Wh1tesnake sure thing - I'll do my best to build one for you and will let you know of the progress. Stay tuned!

@Voyz
Copy link
Owner

Voyz commented Apr 2, 2021

hey @Wh1tesnake just a short update - for personal reasons I wasn't able to do much work this past week. I'll try to find some time to look into as soon as possible. Sorry for the waiting time, hope this doesn't delay your development much 👋

@Wh1tesnake
Copy link
Author

Hi @Voyz, no problem! I have some things I can do on the side for my project.

Thanks for your help!!

@Wh1tesnake
Copy link
Author

Hi @Voyz , to follow up, did you have time to look at it?

Have a great day!

@Voyz
Copy link
Owner

Voyz commented Apr 12, 2021

hey @Wh1tesnake! Yes, I did give it a shot, but I run into some issues during the build. I'm trying to get it sorted 👍

@Voyz
Copy link
Owner

Voyz commented Apr 14, 2021

hey @Wh1tesnake 👋 I've got some good news and bad news:

Good

I managed to complete an arm64 image build of IBeam! I've run into a number of issues due to the platform difference and so I had to make a few changes:

  1. Replaced Chrome with Chromium, given that there isn't Chrome for arm64 (or is there?)
  2. Removed nano, curl and iputils-ping
  3. Added explicit install for libffi-dev
  4. Changed gcc install to gcc-aarch64-linux-gnu
  5. Added pip install --upgrade pip

Bad

Sadly, it breaks during runtime on my end when put on a container 😢

Firstly, the gateway took over a minute to start - when ususally it's up within seconds. Then, the gateway logs keep on reporting some SSL errors along the lines of :

io.netty.handler.codec.DecoderException: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown

Trying to access localhost:5000 never return anything.

Then, for some reason selenium cannot locate the chromediver despite having verified that it is correctly located in the right directory. Maybe it is due to using Chromium instead of Chrome? Maybe switching to Firefox or another browser would help here?

Published image

I've pushed the image to Docker Hub for you to try out:

voyz/ibeam_arm:0.3.0-rc7

If you also are running into these issues on your arm64 then I wouldn't know how to help you at this stage - you'd probably need to look into each of these issues and attempt to debug them one by one. I'm sorry that I cannot invest time into fully supporting arm64 at the moment - although I'm happy to aid you with any questions you may have while trying to tackle this.

Reproducing

Make sure you familiarise yourself with building normal IBeam, following the CONTRIBUTING guide for Building a Docker Image

You can find the modified Dockerfile here: https://gist.github.com/Voyz/1b58f8315bca622f421471a48d589333

And here is how I built it, following these articles:

https://www.docker.com/blog/getting-started-with-docker-for-arm-on-linux/
https://docs.docker.com/buildx/working-with-buildx/

  1. Added "experimental":"enabled" to ~/.docker/config.json
  2. docker buildx create --name mybuilder
  3. docker buildx use mybuilder
  4. docker buildx inspect --bootstrap
  5. docker buildx build -f DockerfileArm --platform linux/arm64 --load -t ibeam_arm .
  6. Run ibeam_arm image like if I would run a normal ibeam image.

@Voyz
Copy link
Owner

Voyz commented May 27, 2021

@Wh1tesnake I'm going to close this due to lack of activity - let me know if you'd like this reopened 👍

@maksimstojkovic
Copy link
Contributor

maksimstojkovic commented Sep 3, 2021

Hi,

I've spent a little while working on an ARM64 docker build which seems to be functional.
Please give it a look at #31 and let me know if it functions as expected when building and using the image on ARM64 devices.
I've also pushed an image of the build to Docker Hub as maksimstojkovic/ibeam-test:latest.
I will take it down once it is reviewed and/or merged.

docker pull maksimstojkovic/ibeam-test:latest

@Wh1tesnake
Copy link
Author

Hi @maksimstojkovic ,

That's awesome!

I'll try it on my system when possible (pretty busy at work). I'll get back to you.

Thank you @Voyz and @maksimstojkovic for you work!!!

Have a great day.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants