jgeusebroek / docker-spotweb

A docker image running ubuntu/20.04 Linux and Spotweb
47 stars 27 forks source link

Nice to have: armhf/arm64 builds #26

Closed djongepier closed 3 years ago

djongepier commented 3 years ago

This is a great image, but I'm missing the ARM builds. Is it possible to do ARM based builds?

jgeusebroek commented 3 years ago

I was thinking about this a while ago. I'm not familiair with cross platform builds and don't have the time at the moment to dive into this.

Pull requests are welcome!

djongepier commented 3 years ago

Well I can give it a go, I am not at all informed on how to do it, but I can read a manual.

Let's see how far I can get.

22 dec. 2020 12:08:05 Jeroen Geusebroek notifications@github.com:

I was thinking about this a while ago. I'm not familiair with cross platform builds and don't have the time at the moment to dive into this.

Pull requests are welcome!

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub[https://github.com/jgeusebroek/docker-spotweb/issues/26#issuecomment-749486188], or unsubscribe[https://github.com/notifications/unsubscribe-auth/ANZV6PZDPKRNLCNBLUVWEOLSWB4ZDANCNFSM4VFOOHXA]. [data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAArSURBVHic7cEBDQAAAMKg909tDjegAAAAAAAAAAAAAAAAAAAAAAAAAAA+DFFIAAEctgHwAAAAAElFTkSuQmCC###24x24:true###][Tracking afbeelding][https://github.com/notifications/beacon/ANZV6P5FA35HRXDCEVBAJPLSWB4ZDA5CNFSM4VFOOHXKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFSWEA3A.gif]

djongepier commented 3 years ago

Hey Jeroen,

I have succeeded in building the image on Raspbian Buster (10) on a Raspberrypi 4 (4GB). This is the armv7(1)/armhf architecture. I needed to install Libseccomp2 on the host to get it to work. What I can do is do the builds for this architecture for you. On my laptop (when time allows) I can try to get a working build.sh for buildx (experimental feature to build multiplatform on a amd64 host system).

Greetings,

Daniël

jgeusebroek commented 3 years ago

Nice! I'm running a Jenkins build environment on amd64. Also dockerhub autobuilds the amd64 image. Not sure how we would incorporate this. Having different versions (ie. spotweb versions) for both amd64 and arm wouldn't be wise I think.

Thoughts?

djongepier commented 3 years ago

My thoughts would be to check out how others incorporate this, and apparently Github actions is a possible solution as well as a solution to make dockerhub build arm too: Link

jgeusebroek commented 3 years ago

Sounds good! I don't have time to look into this atm. I've been wanting to check out Github Actions, but I lack time... If you are willing, try to create a build environment. Then I'm willing to implement it of course.

djongepier commented 3 years ago

Hey Jeroen,

First you enter the "secrets" for dockerhub in settings > secrets of the repository. In Actions click on "Setup a workflow yourself" and paste this script in.

The docker Action file should be something like this:

name: Spotweb Build

on:
  push:
    branches: master

jobs:
  multi:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2
      -
        name: Set up QEMU
        uses: docker/setup-qemu-action@v1
      -
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v1
      -
        name: Login to DockerHub
        uses: docker/login-action@v1 
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      -
        name: Build and push
        uses: docker/build-push-action@v2
        with:
          context: .
          file: ./Dockerfile
          platforms: linux/amd64,linux/arm/v7,linux/arm64
          push: true
          tags: |
            user/app:latest

This will result in only one version visible but with three architectures supported.

jgeusebroek commented 3 years ago

Thanks all!

jimmycleuren commented 3 years ago

Hey Jeroen,

I think autobuilding on docker hub is still enabled. This way, it overwrites the docker image build by the github action. Can you disable autobuilding on docker hub and run the github action manually once ?

jgeusebroek commented 3 years ago

You are correct although I can't seem to run it manually. I cancelled the docker hub auto builds and the auto build on my own jenkins server.

I pushed an empty commit for now. It's building right now.