Discourse peut-il envoyer fréquemment des images Docker qui n'ont pas besoin d'être initialisées ?

Je sais que ce n’est pas une tâche facile. Mais l’objectif des conteneurs est d’assurer un état cohérent et portable. Ainsi, si les conteneurs sont utilisés comme ils devraient l’être, et que cela fonctionne pour vous, alors il y a de fortes chances que cela fonctionne pour tous ceux qui utilisent ce conteneur.

Si le processus de démarrage (bootstrap) était déplacé à l’intérieur du conteneur plutôt que sur l’hôte, vous feriez déjà un grand pas en avant vers la portabilité. Je peux jeter un œil après avoir terminé d’autres projets. Je ne suis pas non plus un expert des conteneurs, mais j’en ai créé quelques-uns. L’inconvénient, cependant, est qu’il n’existe aucune documentation d’installation, n’est-ce pas ? C’est simplement : « Voici, exécutez ce script. » Je peux essayer de reproduire ce que fait le script, mais cela ne laisse pas beaucoup de place pour des suggestions d’amélioration.

Donc, si la communauté, en particulier les personnes directement impliquées et disposant d’informations internes sur le fonctionnement de l’installation, est prête à conseiller ou à aider, alors je suis prêt à lancer cette initiative. Sinon, la qualité ne sera pas à la hauteur de vos attentes.

Les objectifs seraient plus ou moins les suivants :

  • Un Dockerfile qui réalise une construction atomique de l’installation (sans bootstrap local en dehors du conteneur)
  • Pas besoin d’exécuter le conteneur en tant que root ; l’idéal est d’utiliser fakeroot et d’ajouter des capacités (ce sont des arguments en ligne de commande ; les utilisateurs peuvent toujours choisir de démarrer un conteneur en tant que root…)
  • Créer un script d’entrée (entrypoint) qui peut être influencé par des variables d’environnement, lesquelles doivent être clairement documentées
  • Utiliser podman-generate-systemd ou un outil similaire pour créer une unité systemd afin de (redémarrer) un conteneur ou de le démarrer au démarrage (fonctionnalité de Podman ; Docker propose peut-être quelque chose de similaire, mais l’intégration est plus poussée)

Cela concernerait l’installation de base. Pour une solution évolutive, une solution docker-compose et Kubernetes est nécessaire. Je ne pense pas franchement que ce soit à la communauté Discourse de trouver une solution universelle, car ces éléments peuvent être très finement adaptés, surtout sur Kubernetes. Je suppose donc qu’une solution compose de base suffirait pour mettre les gens à niveau.

Cela fournirait une solution portable et plus sécurisée, augmentant ainsi l’adoption et la qualité globales. En attendant, je verrai si Discourse est vraiment ce dont j’ai besoin pour ma communauté. Si c’est le cas, j’utiliserai pour l’instant un système Ubuntu LTS. Une fois que j’aurai plus de temps, j’investirai dans une telle configuration.