Sign inSign up

napadon/mysql-backup

By napadon

•Updated 8 months ago

Image
0

451

napadon/mysql-backup repository overview

⁠MySQL / MariaDB to SFTP Automated Backup

Docker Image สำหรับสำรองฐานข้อมูล MySQL หรือ MariaDB อัตโนมัติ โดยทำการ Dump ฐานข้อมูล, บีบอัดเป็นไฟล์นามสกุล .sql.gz และอัปโหลดไปยัง SFTP Server ปลายทางตามเวลาที่กำหนด (Cron) พร้อมระบบลบไฟล์แบ็คอัพเก่าอัตโนมัติ (Smart Pruning)

⁠✨ ฟีเจอร์

  • Automated Cron Scheduling: ทำงานอัตโนมัติตามเวลาที่ตั้งไว้
  • On-the-fly Compression: บีบอัดไฟล์เป็น .sql.gz เพื่อประหยัดพื้นที่จัดเก็บ
  • Secure Transfer: อัปโหลดข้อมูลผ่าน SFTP
  • Built-in Healthcheck: มีระบบตรวจสอบสถานะ Container (ผ่าน crond) ป้องกัน Service ค้าง
  • Non-Root Execution: รัน Container ด้วยผู้ใช้สิทธิ์ต่ำ (backupuser) เพิ่มระดับความปลอดภัยสูงสุด
  • Smart Pruning: จัดการลบไฟล์แบ็คอัพเก่าบน SFTP อัตโนมัติ:
    • อายุน้อยกว่า 1 สัปดาห์: เก็บไว้ทั้งหมด
    • อายุ 1 สัปดาห์ - 1 เดือน: เก็บ 1 ไฟล์ / สัปดาห์
    • อายุเกิน 1 เดือน: เก็บ 1 ไฟล์ / เดือน

⁠⚙️ Environment Variables

คุณสามารถปรับแต่งการทำงานผ่านตัวแปรสภาพแวดล้อมดังนี้:

⁠Scheduler
  • CRON_SCHEDULE: เวลาทำงานของ Cron (ค่าเริ่มต้น: 0 0 * * * หรือทุกเที่ยงคืน)
  • TZ: โซนเวลาที่ใช้ในการรัน Cron และตั้งชื่อไฟล์ (ค่าเริ่มต้น: Asia/Bangkok)
⁠Database Connection (MySQL / MariaDB)
  • DB_HOST: โฮสต์ของฐานข้อมูล (ค่าเริ่มต้น: mariadb)
  • DB_PORT: พอร์ตเชื่อมต่อ (ค่าเริ่มต้น: 3306)
  • DB_USER: ชื่อผู้ใช้ (ค่าเริ่มต้น: root)
  • DB_PASSWORD: รหัสผ่านผู้ใช้
  • DB_NAME: ชื่อฐานข้อมูลเป้าหมาย (ค่าเริ่มต้น: testdb)
⁠SFTP Connection
  • SFTP_HOST: โฮสต์ของ SFTP (ค่าเริ่มต้น: sftp)
  • SFTP_PORT: พอร์ต SFTP (ค่าเริ่มต้น: 22)
  • SFTP_USER: ชื่อผู้ใช้ SFTP (ค่าเริ่มต้น: foo)
  • SFTP_PASSWORD: รหัสผ่าน SFTP (ค่าเริ่มต้น: pass)
  • SFTP_DIR: Path ของโฟลเดอร์ปลายทาง (ค่าเริ่มต้น: /)

⁠🚀 ตัวอย่าง docker-compose.yml

services:
  mysql-backup:
    image: napadon/mysql-backup:1.0.0 # ระบุ Version Tag ที่ต้องการ
    container_name: mysql-backup
    restart: always
    environment:
      - TZ=Asia/Bangkok # กำหนดโซนเวลาของระบบ
      - CRON_SCHEDULE=0 2 * * * # ตัวอย่าง: ทำงานทุกตี 2
      - DB_HOST=mariadb
      - DB_PORT=3306
      - DB_USER=root
      - DB_PASSWORD=your_password
      - DB_NAME=your_database
      - SFTP_HOST=10.0.0.100
      - SFTP_PORT=22
      - SFTP_USER=backup_user
      - SFTP_PASSWORD=sftp_password
      - SFTP_DIR=/backup/mysql

Tag summary

Content type

Image

Digest

sha256:67d5155d7…

Size

48.2 MB

Last updated

8 months ago

docker pull napadon/mysql-backup:1.1.1