Forum Programmation.php conteneurisation application php avec Docker

Posté par  . Licence CC By‑SA.
Étiquettes :
1
9
mai
2020

Hello.

Je souhaite conteneuriser[1] une application web (Galette).
J'ai créé une image personnalisée à partir de l'image officielle de PHP et j'ai inclue le code de l'application dans l'image.
Petit problème: Dans l'application, il y a un dossier "install" qui contient du code permettant de configurer l'accès à la base de donnée et de créer le compte admin.
Ce dossier doit être là au premier démarrage et il faut le supprimer après l'avoir utilisé pour des raisons de sécurité.
Or, ayant intégré tout le code de l'application à l'image, si je supprime le dossier "install" dans le conteneur il reviendra au prochain redémarrage.
Comment gérez-vous ce genre de chose habituellement?
Est-ce que vous déclarez un volume pour le dossier "install" afin que sa suppression survire au redémarrage?
Est-ce que vous déclarez un volume pour toute l'application? Dans ce cas, comment appliquer les mises à jours de l'application via celle de l'image?

[1] La conteneurisation se faut avec Docker

  • # stockage persistant ou non

    Posté par  . Évalué à 5.

    si tu veux qu'il revienne, il faut le laisser dans le docker
    probleme ? il reviendra alors à chaque démarrage de ton docker.

    si tu le met dans une zone de stockage externe, il est modifiable, et disparait après l'installation ton docker une fois configuré peut redémarrer sans refaire l'installation.

    comme ta galette a besoin d'une base de donnée, je dirais dans un premier temps qu'il faut mettre la base dans ton docker, donc configurer et supprimer l'install puis 'packager' ton docker préinstallé.

    Le probleme reste cependant entier, car la base de donnée doit pouvoir évoluer, donc doit etre sur un support externe (les fameux volumes) ;)

  • # 2 images ?

    Posté par  . Évalué à 1.

    Peut-être qu'il faudrait "simplement" 2 images ?
    galette:vX.0.0
    galette:vX.0.0-install (dont le Dockerfile dépend de galette:vX.0.0 et fait just un COPY du dossier install)

    On lance sur galette-install pour configurer le setup (et donc initialiser des infos en DB externe et/ou sur un volume pour ce container), puis une fois fait, on tourne avec galette:vX.0.0.

    Quand on doit upgrader vers galette:vX.1.0, on a juste à pull la nouvelle image, sans la version vX.1.0-install.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.