docker-baseimage icon indicating copy to clipboard operation
docker-baseimage copied to clipboard

Feature Request: Also add armhf versions

Open baxerus opened this issue 6 years ago • 9 comments

I would like to use your images on a raspberry pi. I was able to build a version without glibc.

But actually I would like to come all the way through the baseimage-gui up to the jdownloader2 image.

baxerus avatar Nov 27 '17 22:11 baxerus

Thanks for the request. I will look at this to see what it would involve.

jlesage avatar Nov 28 '17 15:11 jlesage

Hey, thanks for the fast answer.

I already got the baseimage to work (without using Travis CI) on my raspberry pi. At least for alpine 3.5 and Ubuntu 16.04. But not for the glibc version of alpine (much more dependencies on not simply available precompiled code for armhf). The rest, debian and other alpine versions, I didn't tried.

For the alpine and ubuntu you don't have to change much.

For ubuntu you only have to change one line (less than 5 characters): .../s6-overlay-amd64.tar.gz to .../s6-overlay-armhf.tar.gz Even the base image for Ubuntu does not have to be changed, because it is multi-arch.

For alpine 3.5 the same line has to be altered. But also the base image has to be changed to a arm image (like container4armhf/armhf-alpine:3.5) and the third thing that has to be changed is the add-pkg \ statement after # Install system packages. has to be changed to add-pkg --update --no-cache --repository http://dl-3.alpinelinux.org/alpine/v3.5/community \.

That's all for the baseimage. I also got the baseimage-gui running (with both the alpine 3.5 and Ubuntu as base). I will document my changes to them here also, if you are interested.

In the end: The baseimage-gui is so super cool 👍 . I would say the coolest docker-thing I have seen so far 😉 !

baxerus avatar Nov 28 '17 17:11 baxerus

Thanks for the details. Were you using your raspberry pi to build the image?

jlesage avatar Nov 29 '17 15:11 jlesage

Yes, have copied the Dockerfile.alpine (or debian) over Dockerfile and changed the {baseimage} to the baseimage I need by hand.

Than build it with docker build ....

baxerus avatar Nov 29 '17 16:11 baxerus

Hello @jlesage,

I'm trying to create image for armhf. I'm successfully creating this image for arm and the baseimage-gui and jdownloader-2 too.

All are based on alpine:3.10. I seen the problem with java and 7binding. I continue my test. Because it seems that glibc is not useful anymore. But I don't know which version of 7Binding Jdownloader use. I have to test it.

You can found all my fork. I'll push the modified code and make an PR when I'm finished. And if you want to test the image. It's the same name than you but on my namespace "didierc" Example : "didierc/jdownloader-2"

To create image I'm using the experimental feature buildx for mutliarch images. And it's build with Qemu. Not directly on my rpi.

Thanks and sorry for my language. It's not my native.

Sincerely, Turiok

Turiok avatar Feb 14 '20 08:02 Turiok

Hi again,

My goal : Create an armhf image for raspberry with your image "jlesage/jdownloader-2". To do that, I fork your 3 repositories :

  • jlesage/docker-baseimage
  • jlesage/docker-baseimage-gui
  • jlesage/docker-jdownloader-2

I created a Dockerfile.alpine.armhf and Dockerfile.armhf when needed, git branch are named "feature/armhf". Only for the first and last repository. And sometimes modify files to works with armhf architecture.

The big part build. To do that, I used the new experimental docker feature buildx to create multiarch images. For docker-baseimage, my command :

docker buildx build -t didierc/docker-baseimage --platform=linux/arm --load -f Dockerfile.alpine --build-arg BASEIMAGE=alpine:3.10 .

// With glibc
docker buildx build -t didierc/baseimage:alpine-3.10-glibc --platform=linux/arm --load -f Dockerfile.alpine.armhf --build-arg BASEIMAGE=alpine:3.10 --build-arg GLIBC_INSTALL=1 --build-arg GLIBC_ARCH=armhf .

For docker-baseimage-gui, my command :

docker buildx build -t didierc/baseimage-gui:baseimage-alpine-3.10 --platform=linux/arm --load -f Dockerfile.alpine --build-arg BASEIMAGE=didierc/baseimage:alpine-3.10  .

// With glibc
docker buildx build -t didierc/baseimage-gui:baseimage-alpine-3.10-glibc --platform=linux/arm --load -f Dockerfile.alpine --build-arg BASEIMAGE=didierc/baseimage:alpine-3.10-glibc  .

For docker-jdownloader2:

docker buildx build -t didierc/jdownloader-2:baseimage-gui-baseimage-alpine-3.10 --platform=linux/arm --load -f Dockerfile.armhf .

I didn't build the jdownloader2 image with baseimage-gui:baseimage-alpine-3.10-glibc because I've seen glibc seems not useful anymore.

I'm launching the image on my rpi3. I tried to extract zip and tar.gz file with success.

I can't make a PR because the possibility to create multiarch with your build system is too complicated for me. But you can use my work on my repositories or try the result on my docker hub. https://hub.docker.com/r/didierc/baseimage https://hub.docker.com/r/didierc/baseimage-gui https://hub.docker.com/r/didierc/jdownloader-2

Sincerely, Turiok

Turiok avatar Feb 14 '20 21:02 Turiok

Thanks for this, I will have a look at it. I'm currently planning the infrastructure to build the baseimage for multiple architecture.

jlesage avatar Feb 16 '20 16:02 jlesage

Is there any progress on this?

rvoosterhout avatar Jun 13 '21 15:06 rvoosterhout

+1 for this. Would be great to have apps on this base image running on Raspberry Pi's on arm64

louhisuo avatar Dec 12 '21 19:12 louhisuo

Version 3.0.0 of the image is now multi-arch.

jlesage avatar Oct 06 '22 01:10 jlesage