J'ai dockerisé un projet de nœud. Ce projet génère des fichiers. P>
Chaque fois que le conteneur est détruit, je perds tous les fichiers générés. Je pense utiliser l'événement "Sigterm" et faire une poussée git lorsque le conteneur est sur le point d'être détruit. P>
Y a-t-il une autre approche qui pourrait être utilisée dans cette situation? P>
3 Réponses :
Vous pouvez utiliser Supports de liaison code> (voir Cette réponse ). Il permet d'accéder à votre système de fichiers hôtes à partir du conteneur, ce qui signifie que le conteneur est capable de stocker les fichiers dans un répertoire à la disposition de l'hôte, même lorsqu'il est sorti. P>
Pour votre cas, cela signifie que le projet générera des fichiers dans certains dossiers à l'aide du chemin de fichier local dans le conteneur, tandis que vous verrez toujours les modifications de l'extérieur à l'aide de vos chemins système hôte. P>
Si je comprends bien, vous souhaitez pouvoir enregistrer les fichiers à l'intérieur de votre conteneur avant sa destruction. Vous avez plusieurs possibilités: p>
Dans notre cadre CI, nous utilisons Jenkins et Docker. Jenkins démarre un conteneur Docker puis exécute une commande dans le conteneur pour créer un logiciel. Lorsque la version du logiciel est effectuée, le script de construction dans le conteneur émet une commande qui s'engage et archive le conteneur comme une image au registre Docker. L'image contient tous les fichiers temporaires et la configuration de l'outil. Cela nous permet de recréer un conteneur à partir d'une image archivée ultérieure et de réexécuter des tests avec toutes les dépendances et les fichiers générés déjà en place.
Le script suivant peut être couru de l'intérieur d'un conteneur: P>
-v /var/run/docker.sock:/var/run/docker.sock
pourrait ajouter une monture de liaison au système de fichiers local, vous appuyez sur votre commodité.