J'essaie de faire fonctionner mon application sur minikube, accessible à l'adresse ip minikube. Voici les commandes que j'utilise pour le faire fonctionner. Tout fonctionne comme je le veux (si j'essaie de me connecter, il renvoie le 401 attendu puisque le mongo DB est vide).Comment inclure des données avec l'image mongo dans les kubernetes
Je voudrais réellement inclure une base de données dans mon application avec, disons, un utilisateur existant. Je ne peux pas trouver une façon claire d'inclure des données (disons dans un fichier tar qui fonctionne avec mongo) avec ce que je fais. Comment puis-je accomplir cela?
### Get mongo up
docker pull mongo:3.2
kubectl run mongo --image=mongo:3.2 --port=27017
kubectl expose deployment mongo
### Get API up
cd /api
docker build -t api:v1 .
kubectl run api --image=api:v1 --port=3000 --env="MONGODB_URI=mongodb://mongo:27017/myapp-dev"
kubectl apply -f api-deployment.yml
kubectl expose deployment api --type=LoadBalancer
### Get dashboard up
docker build -t myapp-dashboard:v1 .
kubectl apply -f ./tooling/minikube/myapp-dashboard-qa-config-map.yml
kubectl apply -f ./tooling/minikube/myapp-dashboard-deployment.yml
kubectl expose deployment myapp-dashboard --type=LoadBalancer
### Ingress setup
minikube addons enable ingress
kubectl create -f ingress.yml
kubectl apply -f ./tooling/minikube/ingress.yml
Salut, merci pour la réponse! Je l'ai eu travailler avec votre exemple, mais j'essaye maintenant d'importer une base de données, et faire face à quelques problèmes. A l'intérieur du script 'createuser.sh' j'essaye de courber' myapp-db.tar.bz2' pour que je puisse le 'mongorestore', mais je le casse et les logs disent 'curl: command not found'. J'ai essayé d'ajouter des scripts 'apt-get' mais les journaux disent' Impossible d'ouvrir le fichier de verrouillage/var/lib/dpkg/lock-open (13: permission refusée) '. Comment puis-je exécuter correctement les scripts ici? Je posterai mon dossier complet shell ci-dessous: – swagrov
'mongo myapp-dev --eval "db.dropDatabase()" apt-get update && apt-get install boucle && apt-get install bzip2 https papillotes://cdn.filestackcontent.com/xxxxxxxx -o myapp-db.tar.bz2 bzip2 -dc mapp-db.tar.bz2 | tar xvf - mongorestore --db myapp-dev myapp-dev mongo myapp-dev --eval 'db.users.mise à jour ({}, {$ set: {hashedPassword: "fwaPwkoIpS4y4aWA + uljXWIlyjTxUzkU + IgK4 + B8m + ZhyBrWwM/N/oGfUj0ERAcwnXCOImkOvbvDMH/BAmN8FA ==", sel: "YfnL4jUxfbYY6Y3/w8P8KA =="}}, {multi: true}) ' mongo myapp-dev --eval' db.getCollection ("users"). DropIndex ("referral_1") '' – swagrov
Les scripts initdb ne sont pas exécutés en tant que root, c'est pourquoi vous ne pouvez pas faire' apt-get update/installer »à partir de là. Dans la section 'containers:' sous 'name' etc, ajoutez simplement' command: ["sh", "-c", "apt-get mise à jour && apt-get install ... && exec docker-entrypoint.sh"] ' . Cela devrait faire l'affaire en tant que solution rapide. Mieux encore, construisez votre propre image mongo qui a curl :-) –