mysql-cron-backup

MySQL/MariaDB database backup using cron task manager.

Directory Structure

    • .env
    • docker-compose.yml

docker-compose.yml

version: "2"
 
services:
  mariadb:
    image: mariadb:10
    container_name: my_mariadb
    expose:
      - 3306
    volumes:
      - data:/var/lib/mysql
      - ${VOLUME_PATH}/backup:/backup
    environment:
      - MYSQL_DATABASE=${DATABASE_NAME}
      - MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
      - MYSQL_ALLOW_EMPTY_ROOT_PASSWORD=yes
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--su-mysql", "--connect"]
      timeout: 5s
      retries: 10
 
  backup:
    build: .
    image: fradelg/mysql-cron-backup
    depends_on:
      mariadb:
        condition: service_healthy
    volumes:
      - ${VOLUME_PATH}/backup:/backup
    environment:
      - MYSQL_HOST=my_mariadb
      - MYSQL_USER=root
      - MYSQL_PASS=${MARIADB_ROOT_PASSWORD}
      - MAX_BACKUPS=1
      - INIT_BACKUP=1
      - CRON_TIME=0 0 * * *
    restart: unless-stopped
  
volumes: 
  data:

Resources

GitHub: https://github.com/fradelg/docker-mysql-cron-backup

Docker Hub: https://hub.docker.com/r/fradelg/mysql-cron-backup

Configuration: https://github.com/fradelg/docker-mysql-cron-backup#usage