Robię to za pomocą innego kontenera dockera, którego jedynym celem jest zasianie mongo, a następnie wyjście. Podejrzewam, że to ten sam pomysł, co ebaxt, ale kiedy szukałem odpowiedzi na to pytanie, chciałem tylko zobaczyć szybki i brudny, ale prosty przykład. Oto moja:
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
}
]