Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/08/2015, à 13:49

kyfr59

Dockeriser une application

Bonjour à tous,

Je dois "dockeriser" une application LAMP que je qualifierais de classique.

L'objectif est de faciliter les mises à jour de versions de l'applicatif (basé sur OMEKA). L'application doit être déployée une trentaine de fois.

J'ai récupérer le conteneur Mysql officiel pour y stocker les bases de données et j'arrive à y accéder depuis un autre conteneur. J'ai créé une image contenant Apache+PHP ainsi que mon applicatif (Omeka 2.3).

Le tout fonctionne à merveilles, si je veux déployer une nouvelle instance de mon appli : "docker run --name instance3 appli ...."

Cependant, je ne sais pas du tout comment m'y prendre pour faciliter les mises à jour, je m'explique :

Si demain Omeka sort une version 2.4 et que je suis obligé de MAJ toutes mes instances, comment faire ?

Si je MAJ mon image (contenant actuellement la 2.3) et je je refais un "docker run", je perds les fichiers déposés par les utilisateurs dans l'arborescence du conteneur, ainsi que mes fichiers de logs.

Une idée ?

Merci d'avance.

Franck.

Hors ligne

#2 Le 26/08/2015, à 15:12

gregbs7

Re : Dockeriser une application

Bonjour,

As tu essayer de deporter la zone de stockage avec l'option -v ?
Regarde ce lien , il explique comment utiliser et monter un stockage externe au container.

A plus.


HP 650G1 - Ubuntu Gnome 17.04 - Core I5 - 8Go Ram - Intel® Haswell Mobile - SSD 256 Go Crucial.

Hors ligne

#3 Le 27/08/2015, à 11:14

kyfr59

Re : Dockeriser une application

Salut,

Merci pour ta réponse, je comptais effectivement monter un volume à part pour partager le code de l'appli.

Mon souci se pose pour les fichiers propres aux conteneurs (donc à la trentaine d'instances déployées).

Imaginons par exemple un dossier /uploads propre à chaque conteneur, ou encore un fichier db.ini.

Comment puis mettre à jour l'applicatif partagé tout en conservant certains fichiers propres aux instances ?

J'hésite entre :

- Un script de mise à jour : je sauvegarde /uploads et db.ini, je MAJ l'applicatif partagé, je relance le conteneur, je remet /uploads et db.ini
- Utiliser des liens symboliques pour pour partager tout l'applicatif, sauf /upload et db.ini
- Découper les volumes (option -v) : 1 volume pour le code de l'appli, 1 volume pour /uploads, 1 volume pour db.ini

Un vrai casse-tête...

Hors ligne