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 javascript

Nã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.

questionAnswers(6)

yourAnswerToTheQuestion