Created
March 12, 2020 15:44
-
-
Save BeerOnBeard/906adc8fb4b440afffb127520c3df3f7 to your computer and use it in GitHub Desktop.
MongoDB Docker Backup and Restore Test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -e; | |
mongoOne=f06668aa36714d818dfc2105e103f647; | |
mongoTwo=ea623889303a4e1cb25e7bf2e9b8285c; | |
function onExit() | |
{ | |
docker kill $mongoOne; | |
docker kill $mongoTwo; | |
docker rm $mongoOne; | |
docker rm $mongoTwo; | |
rm backup.gz; | |
} | |
trap onExit EXIT; | |
echo;echo 'Starting MongoDB instances'; | |
docker run \ | |
--name $mongoOne \ | |
--detach \ | |
mongo:4; | |
docker run \ | |
--name $mongoTwo \ | |
--detach \ | |
mongo:4; | |
sleep 1; # should be watching the status of the image if this needed to be more robust ¯\_(ツ)_/¯ | |
echo;echo 'Inserting beer into MongoDB instance one'; | |
docker exec $mongoOne bash -c ' | |
mongo <<EOF | |
use brew-tracker | |
db.beers.insert({ | |
name: "Sabro", | |
hops: "All the Sabro" | |
}) | |
EOF | |
'; | |
echo;echo 'Performing the backup of MongoDB instance one'; | |
docker exec -i $mongoOne mongodump --archive --gzip --db brew-tracker > backup.gz; | |
echo;echo 'Restoring the backup to MongoDB instance two'; | |
docker exec -i $mongoTwo mongorestore --archive --gzip < backup.gz; | |
echo;echo 'Querying for Sabro...'; | |
docker exec $mongoTwo bash -c ' | |
mongo <<EOF | |
use brew-tracker | |
db.beers.find() | |
EOF | |
'; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment