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


#1

@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

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


#3

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


#4

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 ?


#5

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 https://github.com/GladysAssistant/Gladys/pull/435

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)