Skip to content

[Docker] Proposer l'image Core construite par Semaphore dans le dépôt applicatif - #3589

Draft
zoic21 wants to merge 5 commits into
developfrom
feat/docker-core-semaphore-proposal
Draft

zoic21 wants to merge 5 commits into
developfrom
feat/docker-core-semaphore-proposal

Conversation

@zoic21

@zoic21 zoic21 commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Les fichiers de l'image ghcr.io/jeedom/core sont actuellement maintenus dans infra-semaphore, séparément du code applicatif. Cette proposition les versionne dans core pour permettre leur revue et leur évolution avec Jeedom. La construction et la publication restent pilotées par Semaphore.

Contenu

  • Ajout du Dockerfile, de son fichier d'exclusion, du runtime rootfs/ et des tests dans install/OS_specific/Docker/.
  • Reprise du runtime d'infra-semaphore/images/jeedom sans modification de ses fichiers : Apache/PHP 8.4, MariaDB intégrée ou externe, Supervisor, persistance HTML/SQL et contrôle de santé.
  • Préparation à partir du checkout local de core, avec sa version et sa révision dans source.json, au lieu de télécharger un second checkout de master.
  • Dépendances alignées sur l'installeur de develop : chrony, plocate, espeak-ng, gnupg et libcurl4t64. Les outils historiques MySQL, dont mysqlcheck, sont fournis par mariadb-client-compat.
  • Installation des paquets depuis les clés apt d'install/packages.json, optionnels inclus, avec le renommage Debian 13 libcurl4 → libcurl4t64. Le Dockerfile conserve uniquement la liste complémentaire absente du catalogue. Aucun script de comparaison n'est inclus.
  • Exclusion ciblée de install/OS_specific/Docker/ de PHPStan : ce runtime et ses tests utilisent les chemins du conteneur, absents du runner GitHub.
  • Documentation des commandes de build/test, du contrat de persistance et des chemins à configurer ultérieurement dans Semaphore, notamment keep_git_metadata: true.

Le workflow GitHub Actions Docker Test Image (.github/workflows/docker-test.yml) est supprimé. Le Dockerfile historique à la racine, init.sh, Compose et le workflow historique de publication sont conservés. Aucun workflow de publication n'est ajouté pour la nouvelle image. Aucun fichier n'est modifié ou supprimé dans infra-semaphore et le job actuel n'est pas basculé.

L'image conserve son périmètre test/SaaS : les dépendances de plugins installées hors des volumes ne sont pas conservées à la recréation. Une image nouvelle ne remplace pas le code d'un volume HTML existant.

Validation

  • 2 tests Python Supervisor réussis après retrait du contrôle des paquets.
  • Préparation vérifiée avec un dépôt Git local : révision/version, relance, checkout détaché et rejet d'une version invalide.
  • Syntaxes Python et des cinq scripts Bash validées.
  • Aucune référence au script de comparaison dans les fichiers Docker restants.
  • Lecture du catalogue vérifiée : 32 paquets JSON + 42 compléments couvrent exactement la liste précédente, sans doublon entre ces deux sources.
  • Vérification de la syntaxe shell, de la prise en compte d'un ajout au JSON et de l'arrêt sur un JSON invalide.
  • Runtime rootfs identique à la source.

La construction Docker et les tests PHP/du conteneur restent à exécuter via les commandes du README dans un environnement disposant de Docker et PHP, absents de l'environnement de préparation. Aucun build, push d'image ou déploiement de production n'a été lancé.

Source reprise : jeedom/infra-semaphore au commit dbfcc3977dface10d577766957ca0478519dec5b.

@Salvialf Salvialf left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Il doit y avoir une erreur vraisemblablement. Tout ce code n'a pas sa place dans le core et n'a aucune bonne raison de s'y trouver. C'est comme si je mettais les scripts de build d'images officielles AMD64 & ARM64 dans le core. Merci de déplacer vers un dépôt dédié.

De plus les contributions entièrement générées par IA ne sont pas les bienvenues sur le core par souci de maintenabilité.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants