Search code examples
mongodbdockerboot2dockerdockerfiledocker-compose

Docker how to run mongodb in dockerfile


I have a dockerfile that runs a maven build. I am following this guide: https://hub.docker.com/_/maven/

So far in my dockerfile I have this: FROM maven:3-jdk-8-onbuild

It runs the build and fails as expected because the integration tests require that the mongodb server on the localhost is running.

My question is, what do I write in the dockerfile to create an image that has mongodb, start it before the integration tests, and stop the mongodb server after the integration tests?

Thanks


Solution

  • You could run in addition to the other statements in your Dockerfile statements to install mongodb.

    As a template you could for instance use the instructions from the tutum/mongodb Dockerfile.

    Then instead of using the mvn command directly you could call a shell script instead in which you start mongodb first, then execute mvn and as a last step stop mongodb.