Skip to content
A MySQL backup container which ships the backup to S3
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.drone.yml
Dockerfile
README.md
entrypoint.sh

README.md

minback-mysql

Minio Backup container for MySQL

This container provides a trivially simple means to run mysqldump and fire the results off to a Minio instance. It is intended to be run in conjunction with a Kubernetes CronJob to maintain a frequent backup of your critical data with minimal fuss.

Features

  • Dumps a single MySQL database to an S3 bucket
  • Lightweight and short lived
  • Simple and readable implementation

Example

docker run --rm --env-file backup.env minback/mysql my_db -h mysqlserver1

backup.env

MINIO_SERVER=https://play.minio.io/
MINIO_ACCESS_KEY=minio
MINIO_SECRET_KEY=miniosecret
MINIO_BUCKET=backups

Usage

DB_NAME [OPTIONS...]

Arguments
  DB_NAME  - The name of the database you wish to backup
  OPTIONS  - Any additional options you wish to pass to mysqldump

You can read about the options available for use on the official MySQL documentation.

Configuration

This container is configured using environment variables, enabling it to easily be started manually or automatically and integrate well with Kubernetes' configuration framework.

MINIO_SERVER=https://play.minio.io/

The Minio server you wish to send backups to.

MINIO_ACCESS_KEY=minio

The Access Key used to connect to your Minio server.

MINIO_SECRET_KEY=miniosecret

The Secret Key used to connect to your Minio server.

MINIO_BUCKET=backups

The Minio bucket you wish to store your backup in.

DATE_FORMAT=+%Y-%m-%d

The date format you would like to use when naming your backup files. Files are named $DB-$DATE.archive.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.