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

Docker ARM build #54

Open
kosssi opened this issue Feb 4, 2020 · 4 comments
Open

Docker ARM build #54

kosssi opened this issue Feb 4, 2020 · 4 comments
Assignees
Labels
enhancement New feature or request pinned

Comments

@kosssi
Copy link
Contributor

kosssi commented Feb 4, 2020

Bonjour,

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

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 kosssi added the enhancement New feature or request label Feb 4, 2020
@madmath03
Copy link
Member

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 😞

@stale
Copy link

stale bot commented Apr 5, 2020

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 stale bot added the wontfix This will not be worked on label Apr 5, 2020
@stale stale bot removed the wontfix This will not be worked on label Apr 5, 2020
@nicodel
Copy link

nicodel commented Aug 3, 2020

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.

@maksimstojkovic
Copy link

maksimstojkovic commented Sep 10, 2021

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request pinned
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants