2023-12-17 06:46:02 +01:00
2023-12-17 06:46:02 +01:00
2023-12-17 06:43:15 +01:00
2023-12-17 06:43:15 +01:00
2023-12-17 06:43:15 +01:00
2023-12-17 06:43:15 +01:00
2023-12-17 06:43:15 +01:00
2023-12-17 06:43:15 +01:00

MySQL Backup

MySQL Backup docker container image

Build Docker Image Size (latest by date) Docker Pulls

Storage:

  • local
  • s3

Backup database :

version: '3'
services:
  mariadb:
    container_name: mariadb
    image: mariadb:latest
    environment:
      MYSQL_DATABASE: mariadb
      MYSQL_USER: mariadb
      MYSQL_PASSWORD: password
      MYSQL_ROOT_PASSWORD: password
  mysql-bkup:
    image: jkaninda/mysql-bkup:latest
    container_name: mysql-bkup
    command:
     - /bin/sh
     - -c
     - backup
    volumes:
      - ./backup:/backup
    environment:
      - DB_PORT=3306
      - DB_HOST=mariadb
      - DB_DATABASE=mariadb
      - DB_USERNAME=mariadb
      - DB_PASSWORD=password

Restore database :

version: '3'
services:
  mariadb:
    container_name: mariadb
    image: mariadb:latest
    environment:
      MYSQL_DATABASE: mariadb
      MYSQL_USER: mariadb
      MYSQL_PASSWORD: password
      MYSQL_ROOT_PASSWORD: password
  mysql-bkup:
    image: jkaninda/mysql-bkup:latest
    container_name: mysql-bkup
    command: ["restore"]
    volumes:
      - ./backup:/backup
    environment:
      - FILE_NAME=mariadb_20231217_040238.sql
      - DB_PORT=3306
      - DB_HOST=mariadb
      - DB_DATABASE=mariadb
      - DB_USERNAME=mariadb
      - DB_PASSWORD=password

Run

docker-compose up -d

Run on Kubernetes

apiVersion: batch/v1
kind: CronJob
metadata:
  name: mysql-bkup-job
spec:
  schedule: "0 0 * * *"
  jobTemplate:
    spec:
      template:
        spec:
          backoffLimit: 4
          containers:
          - name: mysql-bkup
            image: jkaninda/mysql-bkup:latest
            command:
            - /bin/sh
            - -c
            - backup; 
            env:
              - name: DB_PORT
                value: "3306"
              - name: DB_HOST
                value: "mysql-svc"
              - name: DB_DATABASE
                value: "mariadb"
              - name: DB_USERNAME
                value: "mariadb"
              # Please use secret!
              - name: DB_PASSWORD
                value: "password"
          restartPolicy: Never
Description
Docker container image to Backup, Restore and Migrate MySQL database to Local, AWS S3, FTP, SSH remote Server, or Azure Blob Storage.
Readme MIT 1.1 MiB
Languages
Go 97.9%
Dockerfile 2.1%