mirror of
https://github.com/fradelg/docker-mysql-cron-backup.git
synced 2025-01-18 16:22:33 +01:00
Compare commits
3 commits
8a403d725b
...
d5d98e5a7c
Author | SHA1 | Date | |
---|---|---|---|
|
d5d98e5a7c | ||
|
823343381d | ||
|
aebb29ab64 |
3 changed files with 11 additions and 4 deletions
|
@ -12,7 +12,7 @@ ENV GO111MODULE=on
|
|||
RUN go mod tidy
|
||||
RUN CGO_ENABLED=0 GOOS=linux GO111MODULE=on go build -a -o /go/bin/dockerize .
|
||||
|
||||
FROM alpine:3.20.3
|
||||
FROM alpine:3.21.0
|
||||
LABEL maintainer "Fco. Javier Delgado del Hoyo <frandelhoyo@gmail.com>"
|
||||
|
||||
RUN apk add --update \
|
||||
|
@ -21,7 +21,8 @@ RUN apk add --update \
|
|||
mysql-client \
|
||||
gzip \
|
||||
openssl \
|
||||
mariadb-connector-c && \
|
||||
mariadb-connector-c \
|
||||
fdupes && \
|
||||
rm -rf /var/cache/apk/*
|
||||
|
||||
COPY --from=binary /go/bin/dockerize /usr/local/bin
|
||||
|
|
|
@ -42,6 +42,7 @@ Container is **Healthy** after the database init phase, that is after `INIT_BACK
|
|||
- `GZIP_LEVEL`: Specify the level of gzip compression from 1 (quickest, least compressed) to 9 (slowest, most compressed), default is 6.
|
||||
- `USE_PLAIN_SQL`: If set, back up and restore plain SQL files without gzip.
|
||||
- `TZ`: Specify TIMEZONE in Container. E.g. "Europe/Berlin". Default is UTC.
|
||||
- `REMOVE_DUPLICATES`: Use [fdupes](https://github.com/adrianlopezroche/fdupes) to remove duplicate database dumps
|
||||
|
||||
If you want to make this image the perfect companion of your MySQL container, use [docker-compose](https://docs.docker.com/compose/). You can add more services that will be able to connect to the MySQL image using the name `my_mariadb`, note that you only expose the port `3306` internally to the servers and not to the host:
|
||||
|
||||
|
|
|
@ -29,13 +29,13 @@ do
|
|||
echo "==> Dumping database: $db"
|
||||
FILENAME=/backup/$DATE.$db.sql
|
||||
LATEST=/backup/latest.$db.sql
|
||||
if mysqldump --single-transaction $MYSQLDUMP_OPTS -h "$MYSQL_HOST" -P "$MYSQL_PORT" -u "$MYSQL_USER" -p"$MYSQL_PASS" $MYSQL_SSL_OPTS "$db" > "$FILENAME"
|
||||
if mysqldump --single-transaction --skip-comments $MYSQLDUMP_OPTS -h "$MYSQL_HOST" -P "$MYSQL_PORT" -u "$MYSQL_USER" -p"$MYSQL_PASS" $MYSQL_SSL_OPTS "$db" > "$FILENAME"
|
||||
then
|
||||
EXT=
|
||||
if [ -z "${USE_PLAIN_SQL}" ]
|
||||
then
|
||||
echo "==> Compressing $db with LEVEL $GZIP_LEVEL"
|
||||
gzip "-$GZIP_LEVEL" -f "$FILENAME"
|
||||
gzip "-$GZIP_LEVEL" -n -f "$FILENAME"
|
||||
EXT=.gz
|
||||
FILENAME=$FILENAME$EXT
|
||||
LATEST=$LATEST$EXT
|
||||
|
@ -44,6 +44,11 @@ do
|
|||
echo "==> Creating symlink to latest backup: $BASENAME"
|
||||
rm "$LATEST" 2> /dev/null
|
||||
cd /backup || exit && ln -s "$BASENAME" "$(basename "$LATEST")"
|
||||
if [ -n "$REMOVE_DUPLICATES" ]
|
||||
then
|
||||
echo "=> Removing duplicate database dumps"
|
||||
fdupes -idN /backup/
|
||||
fi
|
||||
if [ -n "$MAX_BACKUPS" ]
|
||||
then
|
||||
# Execute the delete script, delete older backup or other custom delete script
|
||||
|
|
Loading…
Reference in a new issue