Scripts pour migrer MongoDB avec Docker
Chez hola.cloud, nous avons migré un MongoDB 3.6 entre machines. Pour nous assurer de ne pas avoir de problèmes avec les versions, nous avons utilisé exactement la même version avec les images Docker officielles. Voici quelques scripts qui nous ont été utiles.
export.sh
#!/bin/bash
# check argument
if [ -z "${1:-}" ]; then
echo "Use: $0 <folder_name>"
exit 1
fi
BACKUP_DIR="$1"
mkdir -p "$BACKUP_DIR"
docker run --rm --network host \\
-v $(pwd)/$BACKUP_DIR:/backup \\
mongo:3.6 \\
bash -c 'mongodump --host 127.0.0.1 --port 27017 --out /backup'
import.sh
#!/bin/bash
set -euo pipefail
# check argument
if [ -z "${1:-}" ]; then
echo "Use: $0 <backup_folder>"
exit 1
fi
BACKUP_DIR="$1"
if [ ! -d "$BACKUP_DIR" ]; then
echo "Error: folder '$BACKUP_DIR' does NOT exist"
exit 1
fi
docker run --rm --network host \\
-v "$(pwd)/$BACKUP_DIR":/backup \\
mongo:3.6 \\
bash -c "mongorestore --host 127.0.0.1 --port 27017 /backup"
shell.sh
#!/bin/bash
set -euo pipefail
docker run -ti --rm --network host \\
-v "$(pwd)/shell":/shell \\
mongo:3.6 \\
bash -c "mongo --host 127.0.0.1 --port 27017"
Comentarios