mirror of
https://github.com/jkaninda/mysql-bkup.git
synced 2025-12-06 05:29:41 +01:00
108 lines
2.5 KiB
Markdown
108 lines
2.5 KiB
Markdown
|
|
# MySQL Backup
|
||
|
|
MySQL Backup docker container image
|
||
|
|
|
||
|
|
[](https://github.com/jkaninda/mysql-bkup/actions/workflows/build.yml)
|
||
|
|

|
||
|
|

|
||
|
|
|
||
|
|
- [Docker Hub](https://hub.docker.com/r/jkaninda/mysql-bkup)
|
||
|
|
- [Github](https://github.com/jkaninda/mysql-bkup)
|
||
|
|
|
||
|
|
## Storage:
|
||
|
|
- local
|
||
|
|
- s3
|
||
|
|
|
||
|
|
## Backup database :
|
||
|
|
```yaml
|
||
|
|
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 :
|
||
|
|
```yaml
|
||
|
|
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
|
||
|
|
```sh
|
||
|
|
docker-compose up -d
|
||
|
|
```
|
||
|
|
## Run on Kubernetes
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
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
|
||
|
|
```
|