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

Docker ARM build

Open kosssi opened this issue 4 years ago • 4 comments

Bonjour,

J'ai regardé ce que Monogramm faisait et ça à l'air vraiment cool :+1:.

J'utilise depuis hier votre dépôt pour avoir Dolibarr sur mon Raspberry Pi 4. Vu que vous ne construisez pas la version ARM je l'ai fait de mon coté et ça fonction directement.

Peut-être pourriez vous ajouter facilement ce build de votre coté (j'ai ne connais pas la démarche ;) sinon j'aurai fait une PR).

Clairement le Raspberry Pi 4 4go va démocratiser les builds Docker ARM. Les images php, et postgres sont déjà compatible c'est donc vers ce choix que je me suis porté. Mysql et MariaDB ne produisent pas encore de build compatible...

Bonne journée à vous et merci d'avance pour la maintenance des images.

PS: Quand je tape Dolibarr dans docker hub vous ne sortez pas 1er alors que vous avez le plus de téléchargement et que vous avez l'air d'être le mieux... va savoir pourquoi.

kosssi avatar Feb 04 '20 16:02 kosssi

Bonjour @kosssi ,

J'ai regardé ce que Monogramm faisait et ça à l'air vraiment cool 👍.

Merci beaucoup 😃

J'utilise depuis hier votre dépôt pour avoir Dolibarr sur mon Raspberry Pi 4. Vu que vous ne construisez pas la version ARM je l'ai fait de mon coté et ça fonction directement.

Peut-être pourriez vous ajouter facilement ce build de votre coté (j'ai ne connais pas la démarche ;) sinon j'aurai fait une PR).

Je pense que c'est possible mais pour cela, pourrais-tu nous indiquer ce qui a été modifié, voir partager le Dockerfile, pour faire fonctionner ces images sur ARM ? En théorie, j'imagine qu'il ne devrait rien avoir à modifier, juste reconstruire sur ARM puisque ces images sont basées sur les images PHP officielle qui supporte déjà ARM.

Il faut néanmoins que je me documente afin de savoir comment compiler ces images pour ARM via DockerHub...

PS: Quand je tape Dolibarr dans docker hub vous ne sortez pas 1er alors que vous avez le plus de téléchargement et que vous avez l'air d'être le mieux... va savoir pourquoi.

Oui, c'est un comportement bizarre de DockerHub... Il y a quelques mois déjà, on a remarqué qu'on apparaissait plus dans les premiers résultats alors qu'on a le plus de téléchargements et d'étoiles. Ils ont du changer leur algorithme de tri et doivent avoir un bug 😞

madmath03 avatar Feb 05 '20 10:02 madmath03

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Apr 05 '20 10:04 stale[bot]

Bonjour,

J'avoue être très interréssé par un build ARM disponible depuis le Docker Hub. Je vois que dans le code de update.sh tout semble prêt pour construire le Dockerfile.

Qaund est-ce que vous prévoyez de l'utiliser pour rendre les images ARM disponibles sur Docker Hub ?

Merci pour votre travail pour rendre dolibarr installable sur Docker, c'est parfait.

nicodel avatar Aug 03 '20 13:08 nicodel

Hello @madmath03,

I've had a look at this issue and it seems like it is a relatively straightford fix with minimal modification. I have managed to build a functioning multi-architecture image of Dolibarr using your Dockerfile and changing the base image from amd64/php:7.3-apache to php:7.3-apache. This works because the php images support multiple architectures by default (see tags).

This can be repeated in the fpm and fpm-alpine images to eliminate the need for multiple platform-specific Dockerfiles (i.e. merge -amd64 and -i386 directories where only Dockerfiles are different).

A multi-platform image can then be built using docker buildx. The following commands can be used to setup docker buildx:

# Build docker buildx from source
export DOCKER_BUILDKIT=1
docker build --platform=local -o . git://github.com/docker/buildx
mkdir -p ~/.docker/cli-plugins
mv buildx ~/.docker/cli-plugins/docker-buildx

# Docker version information
echo "DOCKER VERSION:"
docker info
echo "BUILDX VERSION:"
docker buildx version

# Install qemu-user-static container
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker buildx create --name builder --driver docker-container --use
docker buildx inspect --bootstrap

The following docker buildx command can be used to build images for the platforms specified:

PLATFORMS=linux/arm/v7,linux/arm64,linux/amd64
docker buildx build -t monogramm/docker-dolibarr:<tag> --platform="$PLATFORMS" --push <path-to-build-context>

I have managed to successfully build a multi-platform build using this process for arm64, armhf and amd64.

The forked repo is available here: https://github.com/maksimstojkovic/docker-dolibarr.

The GitHub workflow used is available here: https://github.com/maksimstojkovic/docker-dolibarr/blob/multiarch-build-workflow/.github/workflows/multiarch-build.yml

The DockerHub image built is available here: maksimstojkovic/dolibarr:14.0

I was unsure as to how this could be incorporated into your CI pipeline so I did not create a pull request, but if you have questions about the process, please let me know.

maksimstojkovic avatar Sep 10 '21 11:09 maksimstojkovic