Skip to content

mongodb-labs/mongo-provision

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mongo Provision

This tool provisions a MongoDB cluster for testing. All nodes of the cluster run in a single container.

Example Usage

# Build the container:
docker build . -t mongo-provision

# Start a 3-node replica set:
docker run -it --rm -p27017-27019:27017-27019 mongo-provision 8.0 --replicaset --nodes 3

# … or, for a sharded cluster:
docker run -it --rm -p27017:27017 mongo-provision 8.0 --replicaset --sharded 3 --nodes 3

The above will hang indefinitely until you kill it, e.g., via CTRL-C.

Then, in another terminal, run:

# for the replset:
mongosh mongodb://localhost:27017,localhost:27018,localhost:27019

# … or, for sharded:
mongosh mongodb://localhost:27017

… and you’re in!

Syntax

The arguments to the container are:

  • a version number (e.g., 8.0) to give to m
  • args for mtools’s init subcommand

Preserving state

This container stores its state (e.g., mongod data files) under /data. To introspect that state outside the container, mount a volume to that path in the container.

Caveats

  • You MUST anticipate the bound ports and export them.
  • The container’s platform will dictate server version availability. For example, you can’t create pre-v5 clusters on Linux/ARM64 because no official builds were made for that version/platform combination.

Acknowledgements

This uses:

About

Containerized provisioning of MongoDB clusters for testing

Resources

Stars

Watchers

Forks

Packages

No packages published