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

ARM support #7

Closed
Azaverte opened this issue Nov 20, 2018 · 20 comments
Closed

ARM support #7

Azaverte opened this issue Nov 20, 2018 · 20 comments

Comments

@Azaverte
Copy link

Azaverte commented Nov 20, 2018

Hello! Thanks for your container, it's neat!

I would like to run it on openmediavault. It worked properly on an x86 VM, but if I try it on my ARM (armhf) single-board computer, the container crashes with the following error:

standard_init_linux.go:190: exec user process caused "exec format error"

which, if I understand well, is due to an architecture mismatch. Are you positive your container indeed can't run on ARM? If so, would it take you a lot of work to change dependencies?

@jlesage
Copy link
Owner

jlesage commented Nov 21, 2018

Hi, for this container to support ARM, 2 things are needed::

  1. Need to have a baseimage for the ARM architecture.
  2. Have Firefox compiled for ARM.

For 1), this is possible and I'm already working on adding support for multiple architectures.

For 2), Firefox is currently not available for ARM on Alpine Linux, which means that Firefox needs to compiled manually. So for sure there will be some work to do on this side.

@DomiStyle
Copy link

For 1), this is possible and I'm already working on adding support for multiple architectures.

Any ETA for ARM support for the baseimage?

@jlesage
Copy link
Owner

jlesage commented Nov 26, 2018

Since I work on this during my free time, it’s hard to give an ETA. However, I can say that more than 90% of the work is done.

@DomiStyle
Copy link

Since I work on this during my free time, it’s hard to give an ETA.

No rush, was just wondering how far it is.

I can say that more than 90% of the work is done.

Good to hear, looking forward to it.

@kavejo
Copy link

kavejo commented Mar 24, 2020

+1 for the ARM support; just upping as this the last comment if from over an year ago.

@moto8801
Copy link

moto8801 commented Apr 14, 2020

+1. It looks like there is a Firefox package for Alpine...

@moto8801
Copy link

moto8801 commented Apr 15, 2020

I'm trying to build my own baseimage, baseimage-gui and firefox image for my RPi4. Everything builds fine (a couple of small tweaks required, eg I had to use Firefox 75 as that's the only package available) and the firefox container boots and I can view Firefox in the browser for a second or so before I get the error below and the container shuts down.
Crash Annotation GraphicsCriticalError: |[C0][GFX1-]: Receive IPC close with reason=AbnormalShutdown (t=1.88177) Waiting for Firefox to completely terminate... Firefox terminated.

I have just built the filezilla image and it's working fine (apart from some strange artefacts as shown below) so the issue seems to be Firefox specific.

Update
The firefox-esr package is working fine

image

@akarpenkoua
Copy link

+1 for ARM image. Will be grateful a lot!
@mtis88 Have you succeeded with building the image? Can you share it? Or the Dockerfile script to reproduce your steps

@TheGeniusL
Copy link

+1

@TijnB
Copy link

TijnB commented Jun 6, 2020

@mtis88 If you managed to compile an image for RPi4, that would much anticipated.

@DBa2016
Copy link

DBa2016 commented Jun 8, 2020

+1 for ARM image. Will be grateful a lot!
@mtis88 Have you succeeded with building the image? Can you share it? Or the Dockerfile script to reproduce your steps

Though I'm not mtis88... :)
I went few steps down this road (I want to build a docker image with jd2 and firefox, or at least separately jd2 and ff for my raspi), not finished yet, but seems promising so far:

  • clone the "baseimage" repository
  • copy "Dockerfile.alpine" to "Dockerfile"
  • change the "FROM" to base on "alpine:latest"
  • change S6_OVERLAY_ARCH and GLIBC_ARCH to "armhf" (my Raspi4 runs in armhf architecture right now, I am too lazy to fiddle with the sd card to resize the /boot partition...long story...).
  • build the image (takes a while, but not too long)
  • git clone the baseimage-gui repo, copy Dockerfile.alpine to Dockerfile, change "FROM" to base on the tag you supplied when building "baseimage".
  • build this image. This seems to take ages (no wonder, considering the compile amount there), I am at this step and will have it hopefully complete overnight (it is running on my Raspi, and I am not in a hurry).

I will report my progress here and maybe I'll start a fork...

@DBa2016
Copy link

DBa2016 commented Jun 8, 2020

Update:

  • baseimage-gui built successfully (openssl dhparams is what took so awfully long), next steps see below
  • git clone the jd2 repo
  • update Dockerfile to use the baseimage-gui built above; also update it to install openjdk-8-jre (since no corretto is available for armhf architecture)
  • build, run, fail because I forgot to update rootfs/startapp.sh to use the correct java path (/opt/jre/bin/java is for corretto, /usr/lib/jvm/java-1.8-openjdk/bin/java is for openjdk), correct rootfs/startapp.sh, build and run again (I am currently at this step, jd2 is now pulling updates; I am also seeing the artifacts mentioned by @mtis88, but they disappear on page reload, so for my purposes this is a suitable workaround)

Next steps are: clone docker-firefox repo, understand the build process, mange it into the above image, then build and run.

@DBa2016
Copy link

DBa2016 commented Jun 8, 2020

Another update: I managed to build the image and launch jd2 (not FF yet). An update of jd2 (something which should be done in 5 minutes tops) took more than 90 minutes on my Raspi4, so I am now trying a different approach, will see whether I get better performance and revisit this if the performance issue turns out to be caused by jd2/java.

@TijnB
Copy link

TijnB commented Jun 8, 2020

Great stuff, looking forward to your updates!

@DBa2016
Copy link

DBa2016 commented Jun 9, 2020

After exploring that other solution, I returned to this base profile, the performance issue seems to be affecting more the update process (which can be executed during image creation to a major extent). Still trying to make firefox work, right now it errors out. Permission/directory issue, will maybe investigate tomorrow.

@DBa2016
Copy link

DBa2016 commented Jun 11, 2020

FF turned out to be super-slow on my pi4, so I went for falkon for now. Performance is stil meh, but better.
Valuable insights: switching to a 64-bit kernel halved build time. Docker itself is still 32bit though (since all userspace tools are 32bit), so arm64 images do not work. I will get a new SD card on Saturday and setup a pure arm64 pi4, hoping for another performance boost. For now, just the process of applying updates (after they have been downloaded) takes almost 25 minutes within the container (was worse before).

@yllekz
Copy link

yllekz commented Aug 26, 2021

Hello, is it still a possibility that this can get Raspberry Pi 32-bit (armhf) support? A similar Docker container for Firefox (ich777/firefox) was able to pull it off and I was just curious if it could be applied here in the same fashion.

@MatthK
Copy link

MatthK commented Sep 16, 2021

Is there any update on this to run on a 64-bit Raspberry Pi?

@fhriley
Copy link

fhriley commented Apr 24, 2022

I created a version that works on ARM. It's not super fast on a Pi4, but it's usable.

@jlesage
Copy link
Owner

jlesage commented Oct 10, 2022

Latest image is now multi-arch.

@jlesage jlesage closed this as completed Oct 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests