Buona sera,Come creare utente in MongoDB con finestra mobile-compongo
Sto cercando di creare una sorta di script che creerà una finestra mobile con MongoDB e creare automaticamente un utente.
Di solito riesco a gestire le mie immagini di finestra mobile con docker-compose ma questa volta non so come farlo.
In sostanza, ecco quello che devo fare:
1) pulito distruggere container/(finestra mobile-comporre down)
2) creare un contenitore di finestra mobile con MongoDB e avviarlo (senza --auth parametro)
3) eseguire uno script java contenente db.createUser()
4) fermare il contenitore
5) ripetere lo stesso cont con un parametro --auth per consentire il login con l'utente creato nel javascript
Non riesco a trovare come farlo correttamente con la finestra mobile-compose perché quando si avvia, devo dargli il comando --auth . Se lo faccio, non posso eseguire il mio javascript per aggiungere il mio utente. MongoDB consente la creazione degli utenti senza essere connessi se non ci sono utenti e se non viene fornito il parametro --auth.
Voglio farlo automaticamente, non voglio eseguire manualmente alcuni comandi. L'obiettivo è avere uno script che possa essere eseguito prima che ogni test di integrazione inizi da un database pulito.
Ecco il mio progetto:
integrazione-test/src/test/risorse/scripts/finestra mobile-compose.yml
mongodb:
container_name: mongo
image: mongo
ports:
- "27017:27017"
volumes:
- .:/setup
command: --auth
integrazione-test/src/test/risorse/scripts/finestra mobile -init.sh
docker-compose down
docker-compose up -d
sleep 1
docker exec mongo bash -c "mongo myDatabase /setup/mongodb-setup.js"
integrazione-test/src/test/risorse/scripts/mongodb-setup.js
db.createUser(
{
user: "myUser",
pwd: "myPassword",
roles: [
{ role: "readWrite", db: "myDatabase" }
]
})
Trovare un modo per riavviare un contenitore con un nuovo parametro (in questo caso --auth) sarebbe di aiuto ma non riesco a trovare come farlo (l'avvio della finestra mobile non accetta i parametri).
Qualche idea su come dovrei fare ciò che vorrei?
In caso contrario, posso ancora eliminare tutto dal mio database con qualche codice Java o qualcos'altro, ma mi piacerebbe una configurazione completa di docker mongodb creata con uno script.
Grazie!
Era giusto, ma questo finestra mobile l'immagine è stata deprecata e queste variabili di ambiente non sono supportate dall'immagine ufficiale:/ – Antoine
L'uso di un'immagine docker non ufficiale per aggiungere funzionalità a un'immagine docker ufficiale potrebbe causare problemi - non c'è garanzia antee che la biblioteca non ufficiale sarà sicura da usare o se verrà mantenuta attivamente. IMHO, @GreenThumb ha suggerito una risposta migliore. – StampyCode