Modifier des paramètres dans un container
Bonjour,
Je suis plutôt nouveau sur Docker. Je reprends un projet mis en place précédemment par quelqu'un d'autre. Les containers de ce projet sont géré par Docker Swarm.
J'ai compris que les images Docker ne sont pas modifiables mais qu'on peut modifier des paramètres applicatifs au sein du conteneur.
Par contre, dans la manière dont le projet est fait actuellement, si le client veut modifier un paramètre sur sa plateforme (par exemple changer la fréquence d'exécution d'un batch, activer ou désactiver une option, ...), il doit regénérer une image Docker à partir de l'état courant du container pour créer une nouvelle image Docker, car si il modifie les paramètres uniquement dans le container, les modifications risquent d'être perdues (car elles sont uniquement sur le layer en écriture).
Je voudrais améliorer ce comportement car ce n'est pas acceptable pour notre client de ne pas pouvoir simplement modifier un paramètre. J'ai l'impression qu'il serait bien d'utiliser un volume Docker contenant les fichiers de configuration susceptibles d'être modifiés par le client.
Mais cela signifie qu'il faut placer ces fichiers dans un répertoire spécifique ? l'application risque de ne plus fonctionner car elle s'attend à trouver ces fichiers dans sa propre arborescence (un peu comme des fichiers dans le répertoire shared/resources dans un serveur tomcat).
Quel est le meilleur moyen de rendre modifiable les fichiers sans avoir à regénérer une image ?
En vous remerciant
mise en place fichiers partagés
Bonjour,
Je ne vois ce qu'il y a de mal ou de compliqué de régénérer une image. Si c'est du swarm, il suffit juste de redéployer.
mais bon passons.
Il faut, mettre en place un serveur de fichier NFS, Samba, S3 pour pouvoir les attaqués dans ton image, mais cela n'empechera pas qu'il faudra
redémarrer les services, pour la prise en compte. A moins qu'ils soient capable de les prendre en compte à chaud. mais c'est un autre sujet.
Olivier