Gladys Docker Multi-Architecture (Amd64, arm32v6, arm32v7)

@VonOx Je viens de voir le boulot que t’as fais sur le multi-arch Docker build sur TravisCI! C’est dingue! ça va nous aider de dingue pour le déploiement de Gladys 4. Un gros bravo :clap:

En gros, maintenant à chaque push sur master, TravisCI build les images Docker non pas juste en X86/x64 (comme jusqu’à là), mais en cross-compilant pour:

  • amd64
  • arm32v6
  • arm32v7

Ce qui veut dire… que quand on déploiera Gladys via Docker, il sera possible d’avoir localement la dernière version… 5 minutes après sa sortie, sans avoir à lancer de commandes sur son Raspberry Pi, et en étant garanti que le build fonctionne, et surtout sans que j’ai à faire un build manuellement de mon côté sur un Raspberry Pi!

Car actuellement, chaque release passe un process assez lourd de mon côté:

  • Je dois me connecter sur un Raspberry Pi le plus vieux possible (pour avoir une architecture ARMv6), donc en général mon Raspberry Pi Zero W,
  • Je dois lancer un script qui pull le github + installe les dépendances + grunt buildProd + targz le tout
  • Je récupère le build, je l’upload sur GitHub + je le duplique sur le mirror
  • Enfin j’update le script de déploiement

ça peut paraître tout con, mais en fait ça fait que je ne peux pas release chaque commits, à la place je fais des batchs et les release ne sont pas fréquentes.

J’ai hâte de voir ça utilisé pour déployer Gladys, ça dépote! :slight_smile:

PS: @VonOx par contre le build fail sur master je sais pas pourquoi :sweat_smile: ça tournait en local?

https://travis-ci.org/GladysAssistant/Gladys/jobs/489352523

2 « J'aime »

Ça tournait même sur mon Travis, je vais jeter un œil.

1 « J'aime »

C’est fixé, t’as une PR en attente

C’est bon ça a fixé :slight_smile:

Beau boulot!

Tu as une idée de pourquoi l’image ARMv7 est beaucoup plus lourde que ARMv6 ?

Oui c’est parce que alpine ne gère pas d’image armv7, ils considèrent qu’il n’y a pas de différences entre v6 et v7 pour les binaries.

En théorie c’est vrai mais dans la pratique ça ne fonctionne pas toujours.

Il y’avait un PR Create Dockerfile.arm32v7 by anthonyraymond · Pull Request #435 · GladysAssistant/Gladys · GitHub

Il reste un peu de boulot pour optimiser la taille de l’image et accélérer le build ( cache des builds docker sur Travis)

1 « J'aime »