Sign inSign up

purposely/mongodump-s3

By purposely

•Updated almost 3 years ago

Image
0

273

purposely/mongodump-s3 repository overview

⁠mongodump-s3

Docker image with mongodump, cron and AWS CLI to upload backups to AWS S3.

⁠Environment variables

Env varDescriptionDefault
MONGO_URIMongo URI.mongodb://mongo:27017
CRON_SCHEDULECron schedule. Leave empty to disable cron job.''
TARGET_FOLDERLocal folder (inside the container) to save backups. Mount volume to this folder. Set it to null (empty string) to disable local backups (this will make TARGET_S3_FOLDER a required parameter).'/backup'
TARGET_S3_FOLDERFolder to upload backups. Leave it empty to disable upload to S3.''
AWS_ACCESS_KEY_IDAWS Access Key ID. Leave empty if you want to use AWS IAM Role instead.''
AWS_SECRET_ACCESS_KEYAWS Access Key ID. Leave empty if you want to use AWS IAM Role instead.''

⁠Examples

Run container with cron job (once a day at 1am), save backup to /path/to/target/folder, upload backups to AWS S3 folder:

docker run -d \
  -v /path/to/target/folder:/backup \
  -e 'MONGO_URI=mongodb://mongo:27017' \
  -e 'CRON_SCHEDULE=0 1 * * *' \
  -e 'TARGET_S3_FOLDER=s3://my_bucket/backup/' \
  -e 'AWS_ACCESS_KEY_ID=my_aws_key' \
  -e 'AWS_SECRET_ACCESS_KEY=my_aws_secret' \
  purposely/mongodump-s3

Same, but runs once, no cron job:

docker run -ti \
  -v /path/to/target/folder:/backup \
  -e 'MONGO_URI=mongodb://mongo:27017' \
  -e 'TARGET_S3_FOLDER=s3://my_bucket/backup/' \
  -e 'AWS_ACCESS_KEY_ID=my_aws_key' \
  -e 'AWS_SECRET_ACCESS_KEY=my_aws_secret' \
  purposely/mongodump-s3

Run container with cron job (once a day at 1am), upload backups to AWS S3 folder, do not create local backups:

docker run -d \
  -e 'MONGO_URI=mongodb://mongo:27017' \
  -e 'CRON_SCHEDULE=0 1 * * *' \
  -e 'TARGET_FOLDER=' \
  -e 'TARGET_S3_FOLDER=s3://my_bucket/backup/' \
  -e 'AWS_ACCESS_KEY_ID=my_aws_key' \
  -e 'AWS_SECRET_ACCESS_KEY=my_aws_secret' \
  purposely/mongodump-s3

Docker Compose example - run container with cron job (once a day at 1am), save backup to mongo-backup volume:

version: '3'

services:
  mongo:
    image: "mongo"

  mongo-backup:
    image: "purposely/mongodump-s3"
    volumes:
      - mongo-backup:/backup
    environment:
      MONGO_URI: "mongodb://mongo:27017"
      CRON_SCHEDULE: "0 1 * * *"
    depends_on:
      - mongo

volumes:
  mongo-backup:

Tag summary

Content type

Image

Digest

sha256:ac6d31409…

Size

372.2 MB

Last updated

almost 3 years ago

docker pull purposely/mongodump-s3