tomsquest / docker-radicale

Docker image for Radicale calendar and contact server :calendar: + security :closed_lock_with_key: + addons :rocket:
GNU General Public License v3.0
591 stars 82 forks source link

ci: use docker buildx to create a multiarch image #111

Closed flixhsw closed 2 years ago

flixhsw commented 2 years ago

Tries to fix tomsquest/docker-radicale#110

tomsquest commented 2 years ago

I was unable to modify your fork/PR, so I did (almost by mistake) push a new version. See #112

My first question is: did you manage to build and run the image on your raspberry ? I mean, does alpine:3.14 works on Raspberry as the base image?

tomsquest commented 2 years ago

I think the image is correctly built using buildx. See the workflow: https://github.com/tomsquest/docker-radicale/runs/4651740771

I pushed a test tag. Can you try the version tomsquest/docker-radicale:test on your raspberry ?

Something like: docker run -d --name radicale -p 5232:5232 tomsquest/docker-radicale:test

flixhsw commented 2 years ago

Hi @tomsquest,

I had the same problem that I could not push a branch into your repo. Therefore I did the fork.

The container now is working on raspberry pi!

$ docker run -d --name radicale-test -p 5232:5232 tomsquest/docker-radicale:test
Unable to find image 'tomsquest/docker-radicale:test' locally
test: Pulling from tomsquest/docker-radicale
764d2e53e1a6: Pull complete 
d46050d10428: Pull complete 
6091e1428b9d: Pull complete 
bce46f61d70e: Pull complete 
Digest: sha256:19b7f24e56a4b36c36a74a2a05e14267941f44b639dd536249667b8b2e1d983e
Status: Downloaded newer image for tomsquest/docker-radicale:test
c6a21fac8ffc33bd7c04fc3477a98ec71ae7e7df0faeb9c4e9261781080e3c14
$ docker ps
CONTAINER ID   IMAGE                                                         COMMAND                  CREATED              STATUS                            PORTS                                       NAMES
c6a21fac8ffc   tomsquest/docker-radicale:test                                "docker-entrypoint.s…"   About a minute ago   Up 4 seconds (health: starting)   0.0.0.0:5232->5232/tcp, :::5232->5232/tcp   radicale-test

Browsing localhost:5232 also shows me the web interface of radicale, so it really seems to be running. I had no config for radicale set up, which means I did not do a "full" test.

However, I also tested on my linux machine and the image is also working there. The interesting part is, when I call docker image inspect tomsquest/docker-radicale:test. On my raspberry pi it gives me (besides a lot more output):

"Architecture": "arm",
"Variant": "v7",
"Os": "linux",

While on my linux machine:

"Architecture": "amd64",
"Os": "linux",

For me this all looks quite well!

flixhsw commented 2 years ago

I just looked over your commits: Using the build/push action looks even better than what I did. Before merging your PR, the ./ci/build-push.sh file should be deleted as it is not used anymore.

flixhsw commented 2 years ago

Hi @tomsquest ,

I just updated my PR to reflect your changes, removed the outdated build-push.sh and updated the readme. I assume we do not need the test-buildx.yml, right?

Also, I invited you to my forked repo, so that you should have write access now. However I don't know if this really helps as the ci / docker push won't work in my repo as far as I understand.

tomsquest commented 2 years ago

Thanks @flixhsw . Really nice that it works on PI :+1:

I will review the changes and merge it ASAP

flixhsw commented 2 years ago

Hi @tomsquest, I fixed your findings. For me the naming of the architectures is still confusing. According to https://hub.docker.com/_/alpine the supported architectures are amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x. So I wonder if we should use the same names in the readme.md and release.yml.

Actually I do not understand which by which mechanism the current platforms in release.yml (linux/arm/v7,linux/arm64) are mapped to the architectures mentioned above.

tomsquest commented 2 years ago

Thanks, everything is ok !

I think we have:

So we could also add the last platform (I don't remember the exact name) if needed (which should be mapped to arm32v6.

flixhsw commented 2 years ago

Ok, then it is fine for me to merge the PR.

I just run a test with the buildx-test docker container with real data and synced with other devices. Everything was working as expected.

tomsquest commented 2 years ago

Thanks for the testing phase!

I will merge it, then tag the new version.

tomsquest commented 2 years ago

Released as 3.0.6.6.

Version 3.1.0.0 will follow soon (Radicale hits this version recently)