Confus sur l'installation de docker

J’ai examiné les images Docker disponibles pour Discourse aujourd’hui et j’ai quelques questions.

  1. Sur les deux images, il est indiqué qu’elles installent Discourse (évidemment). Ensuite, une liste d’étapes est fournie pour mettre tout en place, principalement la configuration du nom de domaine et de l’adresse e-mail.

Je suis confus concernant la base de données. Aucune étape ne semble la configurer.
La base de données Postgres (ou autre) est-elle incluse dans la même image ?
Redis l’est-il aussi ? Ou cela fait-il partie d’une option entièrement séparée ?

Dans la liste des éléments contenus dans l’image Docker, la base de données n’est pas mentionnée.

J’utilise Docker au travail pour le développement, la mise en staging et la production.
Nos conteneurs sont immuables.
Lorsque nous devons déployer une nouvelle image pour une mise à niveau, nous récupérons le dernier code depuis Git et le déploiement se fait automatiquement.

Nous ne modifions jamais un conteneur, ou du moins pas de manière à ce que les changements persistent au-delà de la prochaine mise à jour.

Lorsque nous souhaitons passer à une version plus récente de .NET par exemple, nous modifions simplement l’image de base et nous la déployons.

En lisant des informations sur l’image Docker de Discourse, il semblait que des modifications étaient apportées au contenu de l’image comme s’il s’agissait d’une installation classique.
Les modifications apportées à l’image étaient-elles destinées à être persistantes ? Est-ce le cas ?

Au premier abord, j’ai pensé que cela signifiait que tout était stocké dans la base de données.
Mais alors, la base de données se trouve-t-elle à l’intérieur du conteneur ? Les modifications apportées à la base de données sont-elles donc également persistantes ?

Si c’est le cas, comment puis-je m’assurer que toutes les modifications sont sauvegardées si j’arrête le conteneur pour l’éteindre, puis le redémarre ?

Deuxièmement, et c’est beaucoup plus important : comment cela impacte-t-il la mise à niveau vers une nouvelle version du logiciel de forum ?

D’après ce que j’ai lu, il semblait que l’on utilisait les instances à l’intérieur du conteneur pour effectuer des mises à jour sur lui-même.
Je m’attendais à ce qu’une nouvelle image contenant les mises à jour soit déployée et que tout se passe bien.

Je suis surtout habitué à considérer les images Docker comme du bétail : elles meurent, elles sont remplacées, aucune modification n’est jamais persistante sur l’image.

Je ne savais pas qu’il existait des images Docker capables de conserver des modifications au-delà du prochain redémarrage.

Bonjour @talkingBeat,

La base de données est montée dans un volume situé à l’extérieur du conteneur Docker ; elle est donc persistante.

J’espère que cela vous aide.

Cela a du sens. Si Discourse sort une nouvelle version et que je remplace le fichier Docker par un nouveau puis que je l’exécute, la base de données sera-t-elle toujours là ?

Qu’en est-il des personnalisations qui ont modifié des fichiers ou ajouté/supprimé des fichiers ?

Bonjour @RockHopper et bienvenue à nouveau,

Le script de lancement de Discourse s’occupe de tout cela ; cela est entièrement pris en charge par l’équipe meta ici.

J’espère que cela vous aide.