2017-07-08 4 views
1

J'ai deux conteneurs un exécutant python et un autre fonctionnant mongodb. Maintenant, je veux exécuter la commande mongoimport à partir de mon conteneur d'application.Comment exécuter des commandes shell à partir du conteneur myApp (python) dans le conteneur myData (mongodb)?

Alors, comment faire?

+0

Vous pouvez utiliser '' 'docker exec -it name_container ou id_container bash ou sh''' alors quand vous êtes dans le conteneur de mongodb utilisez' '' mongo import''' –

Répondre

0

docker exec doit être réservé à des fins de débogage.

Idéalement, vous exécuteriez mongoimport au moment de la construction à partir de votre Dockerfile, afin de créer une image dédiée à l'amorçage de votre base de données mongo.
Par exemple, regardez « How do I seed a mongo database using docker-compose? »

De cette façon, vous évitez toute opération d'exécution manuelle .

Si vous devez effectuer un fonctionnement normal, vous devez ajouter à votre image un cron, as I described here.
De cette façon, vous pouvez exécuter ce mongoimport régulièrement, pendant la durée d'exécution du conteneur.

+0

L'application est telle que lorsque de nouveaux fichiers obtiennent ajouté, il devrait être importé dans la base de données. Les fichiers ne seraient ajoutés qu'à un certain moment, mais je voudrais automatiser ce processus. –

+0

@SamipKothari OK. J'ai édité la réponse en conséquence. – VonC