File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -14,22 +14,25 @@ RUN addgroup -S backup && adduser -D -H -G backup backup
1414RUN apk add --no-cache --update busybox-suid mysql-client libcap && \
1515 setcap cap_setgid=ep /bin/busybox
1616
17- COPY --chown=backup:backup *.sh /opt/
17+ COPY *.sh /opt/
1818
1919RUN rm -f /var/spool/cron/crontabs/root && \
2020 chmod +x /opt/entrypoint.sh && \
2121 chmod +x /opt/backup.sh && \
22+ chown backup:backup /opt/backup.sh && \
2223 mkdir /var/log/cron/ && \
23- mkdir -p /home/backup/backups && \
24+ mkdir -p /home/backup && \
2425 chown -R backup:backup /home/backup && \
2526 chown -R backup:backup /var/log/cron/ && \
2627 touch /var/spool/cron/crontabs/backup && \
2728 chgrp backup /var/spool/cron/crontabs/backup && \
28- chmod g+rw /var/spool/cron/crontabs/backup
29+ chmod g+rw /var/spool/cron/crontabs/backup && \
30+ mkdir -p /opt/backup && \
31+ chown -R backup:backup /opt/backup
2932
30- USER backup
33+ VOLUME /opt/ backup
3134
32- VOLUME /home/backup/backups
35+ USER root
3336
3437ENTRYPOINT ["/opt/entrypoint.sh" ]
3538
Original file line number Diff line number Diff line change @@ -5,10 +5,16 @@ DB_PORT=${DB_PORT:-3306}
55
66echo " backup: starting backup script"
77
8- mysqldump -u" ${DB_USER} " -p" ${DB_PASSWORD} " \
8+ /usr/bin/ mysqldump -u" ${DB_USER} " -p" ${DB_PASSWORD} " \
99 --databases " ${DB_DATABASE} " \
1010 --host " ${DB_HOST} " --port " ${DB_PORT} " \
1111 --single-transaction --quick --skip-lock-tables \
12- --no-create-db --disable-keys --extended-insert > " /home/backup/backups/${DB_DATABASE} .sql"
12+ --no-create-db --disable-keys --extended-insert 2>> /dev/stdout > " /opt/backup/${DB_DATABASE} .sql"
13+
14+ ret=$?
15+ if [ $ret -eq 0 ]; then
16+ echo " backup: backup written in /opt/backup/${DB_DATABASE} .sql"
17+ else
18+ echo " backup: backup NOT PERFORMED, mysqldump exit code ${ret} "
19+ fi
1320
14- echo " backup: backup written in /home/backup/backups/${DB_DATABASE} .sql"
Original file line number Diff line number Diff line change @@ -31,4 +31,4 @@ services:
3131 networks :
3232 - internal
3333 volumes :
34- - " /home /backup/backups "
34+ - " /opt /backup"
Original file line number Diff line number Diff line change @@ -6,10 +6,6 @@ CRON_LOG_LEVEL=${CRON_LOG_LEVEL:-2}
66
77# TODO: check if required variables ${DB_USER} ${DB_PASSWORD} ${DB_DATABASE} ${DB_HOST} are configured
88
9- if [ ! -d " /home/backup/backups/" ]; then
10- mkdir -p " /home/backup/backups/"
11- fi
12-
13- chown -R backup /home/backup/backups/ && \
14- echo " ${CRON_SCHEDULE} /opt/backup.sh >> /dev/stdout 2>&1" > /var/spool/cron/crontabs/backup && \
15- crond -f -l " ${CRON_LOG_LEVEL} " -L /dev/stdout
9+ chown -R backup /opt/backup && \
10+ echo " ${CRON_SCHEDULE} /opt/backup.sh >> /dev/stdout 2>&1" > /var/spool/cron/crontabs/root && \
11+ crond -f -l " ${CRON_LOG_LEVEL} " -d " ${CRON_LOG_LEVEL} " -L /dev/stdout
Original file line number Diff line number Diff line change @@ -22,7 +22,7 @@ The best way run it is with Docker Compose:
2222 DB_USER : " ### Replace With Database User ###"
2323 DB_PASSWORD : " ### Replace With Database Password ###"
2424 volumes :
25- - " /home /backup/backups "
25+ - " /opt /backup"
2626` ` `
2727
2828> Don't forget to add the database as a dependant service and place it in the
@@ -41,8 +41,8 @@ database:
4141- `DB_USER` : The user that can access the database
4242- `DB_PASSWORD` : The password to access the database
4343
44- The database dump will be created at 11.02pm each day
45- in the `/home /backup/backups /` folder. Filename will be `{DB_DATABASE}.sql`.
44+ The database dump will be created at 11.02pm UTC each day
45+ in the `/opt /backup/` folder. Filename will be `{DB_DATABASE}.sql`.
4646
4747> The backup schedule is [configurable](#backup-schedule), 11.02pm is just a default value.
4848
You can’t perform that action at this time.
0 commit comments