Como criar usuário no mongodb com docker-compose
Estou tentando criar algum tipo de script que criará uma janela de encaixe com o mongodb e criará automaticamente um usuário.
Normalmente, posso gerenciar minhas imagens do docker-composer, mas desta vez não sei como fazê-lo.
Basicamente, aqui está o que eu tenho que fazer:
limpar / destruir o recipiente (docker-compose down
)crie um contêiner de docker com mongodb e inicie-o (sem--auth parameter
)executar um script java contendodb.createUser()
pare o recipientereinicie o mesmo contêiner com--auth
parâmetro para permitir o login com o usuário criado no javascriptNão consigo encontrar como fazer isso corretamente com o docker-compose porque, quando ele inicia, tenho que dar o comando --auth. Se fizer isso, não consigo executar meu javascript para adicionar meu usuário. O MongoDB permite a criação de usuários sem estar logado se não houver usuário e se o parâmetro --auth não for fornecido.
Quero fazer isso automaticamente, não quero executar manualmente alguns comandos. O objetivo é ter um script que possa ser executado antes de cada teste de integração para iniciar em um banco de dados limpo.
Aqui está o meu projeto:
teste de integração / src / test / recursos / scripts / docker-compose.yml
mongodb:
container_name: mongo
image: mongo
ports:
- "27017:27017"
volumes:
- .:/setup
command: --auth
teste de integração / src / test / recursos / scripts / docker-init.sh
docker-compose down
docker-compose up -d
sleep 1
docker exec mongo bash -c "mongo myDatabase /setup/mongodb-setup.js"
teste de integração / src / test / recursos / scripts / mongodb-setup.js
db.createUser(
{
user: "myUser",
pwd: "myPassword",
roles: [
{ role: "readWrite", db: "myDatabase" }
]
})
Encontrando uma maneira de iniciar novamente um contêiner com um novo parâmetro (neste caso--auth
) ajudaria, mas não consigo encontrar como fazer isso (o docker start não aceita parâmetros).
Alguma idéia de como devo fazer o que gostaria?
Caso contrário, ainda posso excluir tudo do meu banco de dados com algum código Java ou qualquer outra coisa, mas gostaria de ter uma configuração completa do docker mongodb criada com um script.