docker run -d \
--env MYSQL_USER=hustoj \
--env MYSQL_PASS=密码\
--env INIT_BACKUP=1 \
--env MYSQL_HOST=hustoj \
--env CRON_TIME="20 8 * * *" \
--env TZ=Asia/Shanghai \
--link hustoj \
--volume /data/backup/:/backup \
--name=bak \
fradelg/mysql-cron-backup:1.14.1version: "2"
services:
mariadb:
image: mariadb
container_name: my_mariadb
expose:
- 3306
volumes:
- data:/var/lib/mysql
# If there is not scheme, restore the last created backup (if exists)
- ${VOLUME_PATH}/backup/latest.${DATABASE_NAME}.sql.gz:/docker-entrypoint-initdb.d/database.sql.gz
environment:
- MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
- MYSQL_DATABASE=${DATABASE_NAME}
restart: unless-stopped
mysql-cron-backup:
image: fradelg/mysql-cron-backup
depends_on:
- mariadb
volumes:
- ${VOLUME_PATH}/backup:/backup
environment:
- MYSQL_HOST=my_mariadb
- MYSQL_USER=root
- MYSQL_PASS=${MARIADB_ROOT_PASSWORD}
- MAX_BACKUPS=15
- INIT_BACKUP=0
# Every day at 03:00
- CRON_TIME=0 3 * * *
# Make it small
- GZIP_LEVEL=9
# As of MySQL 8.0.21 this is needed
- MYSQLDUMP_OPTS=--no-tablespaces
restart: unless-stopped
volumes:
data:docker-compose文件中的环境变量CRON_TIME后面的字符串不能加""