MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como faço para semear um banco de dados mongo usando o docker-compose?


Eu faço isso usando outro contêiner docker cujo único objetivo é semear o mongo e depois sair. Eu suspeito que esta é a mesma ideia do ebaxt, mas quando eu estava procurando uma resposta para isso, eu só queria ver um exemplo rápido e sujo, mas direto. Então aqui está o meu:

docker-compose.yml
mongodb:
  image: mongo
  ports:
    - "27017:27017"

mongo-seed:
  build: ./mongo-seed
  links:
    - mongodb

# my webserver which uses mongo (not shown in example)
webserver:
  build: ./webserver
  ports:
    - "80:80"
  links:
    - mongodb

mongo-seed/Dockerfile
FROM mongo

COPY init.json /init.json
CMD mongoimport --host mongodb --db reach-engine --collection MyDummyCollection --type json --file /init.json --jsonArray

mongo-seed/init.json
[
  {
    "name": "Joe Smith",
    "email": "[email protected]",
    "age": 40,
    "admin": false
  },
  {
    "name": "Jen Ford",
    "email": "[email protected]",
    "age": 45,
    "admin": true
  }
]